نمایش نتایج 1 تا 7 از 7

نام تاپیک: تفاوت store procedure با function ها

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تهران
    پست
    857

    Talking تفاوت store procedure با function ها

    سلام
    دوستان ممنونتون میشم لطف کنید راهنمایی بفرمایید که store procedure ها با function ها چه تفاوت هایی دارند و یا موارد استفاده هر کدوم چیا هستن؟

    مرسی

  2. #2
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988

    نقل قول: تفاوت store procedure با function ها

    In many instances you can accomplish the same task using either a stored procedure or a function. Both functions and stored procedures can be custom defined and part of any application. Functions, on the other hand, are designed to send their output to a query or T-SQL statement. For example, User Defined Functions (UDFs) can run an executable file from SQL SELECT or an action query, while Stored Procedures (SPROC) use EXECUTE or EXEC to run. Both are instantiated using CREATE FUNCTION.

    To decide between using one of the two, keep in mind the fundamental difference between them: stored procedures are designed to return its output to the application. A UDF returns table variables, while a SPROC can't return a table variable although it can create a table. Another significant difference between them is that UDFs can't change the server environment or your operating system environment, while a SPROC can. Operationally, when T-SQL encounters an error the function stops, while T-SQL will ignore an error in a SPROC and proceed to the next statement in your code (provided you've included error handling support). You'll



    ترجمه آن با GOOgle :

    در بسیاری از موارد شما می توانید همان کار را با استفاده از هر دو روش های ذخیره شده و یا یک تابع انجام. هر دو از توابع و رویه ذخیره شده را می توان سفارشی تعریف شده و بخشی از هر برنامه است. توابع ، از سوی دیگر، طراحی شده برای ارسال خروجی خود را به پرس و جو و یا T - SQL بیانیه. به عنوان مثال ، کاربر تعریف توابع (UDFs) می تواند فایل های اجرایی از SQL SELECT یا پرس و جو عمل، اجرا در حالی که استفاده از رویه ذخیره شده (SPROC) EXECUTE یا EXEC برای اجرا. هر دو نمونه هستند با استفاده از تابع CREATE.

    برای تصمیم گیری بین با استفاده از یکی از این دو، به خاطر داشته باشید تفاوت اساسی بین آنها : روش های ذخیره شده طراحی شده اند برای بازگشت به خروجی آن به برنامه.UDF را برمی گرداند متغیر جدول، در حالی SPROC می تواند یک متغیر جدول بر نمی گرداند هر چند می تواند یک جدول ایجاد کنید. یکی دیگر از تفاوت قابل توجهی بین آنها این است که UDFs می تواند محیط سرور و یا محیط سیستم عامل خود را تغییر دهید، در حالی که SPROC می تواند. عملکرد، زمانی که T - SQL با یک خطا مواجه تابع متوقف می شود، در حالی که T - SQL خطا در SPROC و چشم پوشی از اقدام به بیانیه بعدی در کد خود را (شما عبارت است از : خطا در پشتیبانی از دست زدن به). شما

  3. #3
    کاربر دائمی آواتار Galawij
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شاره که م سنه
    پست
    711

    نقل قول: تفاوت store procedure با function ها

    توابع با نوع Scalar-Valued Functions همواره یک نوع داده عددی را برمی گرداند.(در واقع توابع همیشه یک مقدار را برمی گردانند).
    توابع با نوع Table-Valued Functions می توانند یک جدول را به عنوان خروجی برگردانند.
    در داخل SP ها می توان هر چندین بار که لازم باشد توابع را فراخوانی کرد.
    از SP ها بیشتر برای عملیات تکراری (حذف، به روز رسانی، اضافه کردن و ...)بانک اطلاعاتی استفاده می شود به طوری که شما یک روال را می نویسید و بارها از طرف برنامه آن را فراخوانی می کنید.

  4. #4
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276

    نقل قول: تفاوت store procedure با function ها

    یکی از مهمترین تفاوتها این است که شما function را میتونین داخل select استفاده کنین ولی sp را نمیتوانید استفاده کنید

  5. #5

    نقل قول: تفاوت store procedure با function ها

    توابع با نوع Scalar-Valued Functions همواره یک نوع داده عددی را برمی گرداند
    می تونن هر نوعی از داده نرده ای رو برگردونن. حتی varchar


    در Function:
    نمی توان از exec استفاده کرد.
    نمی توان روی جداول تاثیر گذاشت.
    نمی توان به جداول موقتی دسترسی داشت. اما میشه از نوع داده جدول استفاده کرد.
    حتما باید یک return داشته باشیم.
    return می تواند از هر نوعی باشد.
    نمی توان از داده های output استفاده کرد.
    برای فراخوانی function فقط اسمشو می نویسیم.

    در SP:
    نمی توان return از نوعی که غیر عدد صحیح باشه استفاده کنیم.
    می توانیم اصلا return نداشته باشیم.
    برای فراخوانی SP از exec استفاده می کنیم.

    و احتمالا چند تا چیز دیگه که الان یادم نیست.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  6. #6
    کاربر جدید آواتار eof_programming
    تاریخ عضویت
    تیر 1387
    محل زندگی
    In The Future
    پست
    8

    نقل قول: تفاوت store procedure با function ها

    یه چیز مهم که Function ها از SP ها سرعت کمتری دارند چون تفسیری هستند. و اینکه میتونی یه Function رو برابر یه متغیر قرار بدی و ازش خروجی بگیری اما با SP نمیشه.

  7. #7

    نقل قول: تفاوت store procedure با function ها

    با اجازه اساتید.

    Functions
    ----------
    1) can be used with Select statement
    2) Not returning output parameter but returns Table variables
    3) You can join UDF
    4) Cannot be used to change server configuration
    5) Cannot be used with XML FOR clause
    6) Cannot have transaction within function

    Stored Procedure
    -----------------
    1) have to use EXEC or EXECUTE
    2) return output parameter
    3) can create table but won’t return Table Variables
    4) you can not join SP
    5) can be used to change server configuration
    6) can be used with XML FOR Clause
    7) can have transaction within SP


    در واقع :


    ----------

    It's more accurate to say it as: "Functions cannot be used to change ANYTHING". Functions in SQL are not allowed to have any kind of permanent effect, so they can't modify ANYTHING permanent. The only thing they're allowed to change would be a table variable created within the function itself.
    و
    If you can't modify anything - there's no point in allowing transactions.....

    You can't join to 'SP' DIRECTLY. You can use some easy techniques to join to it (OPENQUERY for one thing).


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •