PDA

View Full Version : تفاوت میان Stored Procedure که Return Value دارد با user-defined function



odiseh
یک شنبه 26 آذر 1385, 12:57 عصر
سلام
چه تفاوتی بین stored procedure ای که Return Value دارد با user-defined function وجود دارد؟

به عبارت دیگر دلیل مایکرو سافت برای ایجاد امکان SP با Return Value چه چیزی است و امکان دارد یه مثال که توش SP با Return Value وجود دارد ......ذکر نمایید

با تشکر فراوان

رها
یک شنبه 26 آذر 1385, 13:45 عصر
معمولاً تابع ها رو هنگامی استفاده می کنند که یه سری عملیات تبدیل یا محاسباتی مورد نیاز باشه اما SP ها هنگام کار با انواع query ها استفاده می شوند.
یک نمونه sp ساده که مجموع رو به عنوان خروجی برمی گردونه

create stored procedure dbo.test
@s int output
as
select @s=sum(tedad) from table1
go

مزیت استفاده از فیلدهای از نوع output اینه که از طریق برنامه ای که باهاش از sql server استفاده می کنید می تونید نتایج رو چک کنید.

Kamyar.Kimiyabeigi
دوشنبه 27 آذر 1385, 08:26 صبح
در ضمن شما در SELECT میتونین FUNCTION رو صدا بزنید ولی STORED PROCEDURE رو نمی تونید صدا بزنید

odiseh
دوشنبه 27 آذر 1385, 10:35 صبح
بچه ها من منظورم اون نوع SP هستش که آخرش می گیم Return یه مقداری رو... و بعدتوی برنامه vb مون یه پارامتر از نوع return بهش پاس می دیم.
نه اینکه یه پارامتر output داشته باشیم.

AminSobati
دوشنبه 27 آذر 1385, 23:31 عصر
دوست عزیزم،
به علاوه مطالبی که اشاره کردند:
Ret Val همیشه یک عدد Integer هستش و غیر از این نمیتونه باشه. این کد به صورت استاندارد برای مشخص کردن اینکه آیا SP کارش رو با موفقیت انجام داده یا خیر، بکار میره. ولی خروجی تابع جنسهای متنوع میتونه داشته باشه و دلیل استفاده از تابع فرق داره با فلسفه SP

eyelash
سه شنبه 28 آذر 1385, 23:47 عصر
فکر می کنم از یک user-defined function می تونین در عبارات SQL هم استفاده کنین ولی SPها این قابلیت را ندارن

zerobit-ltd
جمعه 08 دی 1385, 11:05 صبح
Return توی SP ها، معمولا برای اعلام رخ دادن خطا هستش.
استفاده از Return توی SP ها اجباری نیست. اگر SP کار خودشو با موفقیت انجام بده، Return Value برابر 0 هستش، در غیر این صورت کد خطا به عنوان Return Value برگردونده میشه.
ولی توی Function ها، Return حتما باید در آخر Function وجود داشته باشه.
در Functionها، نمیشه از بعضی از دستورات و متغیرهای عمومی sql استفاده کرد.