پاسخ به:آموزش گام به گام SQL Server
چهارشنبه 22 تیر 1390 1:50 PM
سلام
- طراحی(UDF) User Define Function : یکی از قابلیت های پایگاه داده SQL Server ایجاد UDF است که کاربران قادرند متناسب با نیاز در هر پروژه به طراحی آن اقدام نمایند و دارای شکل کلی ذیل می باشد.
هرUDF طراحی شده بعنوان یک تابع در کلیه دستورات SQL قابل استفاده است از طرفی درصورتیکه از EXECute استفاده گردد هر UDF می تواند مانند یک SP اجرا گردد همچنین در یک تابع UDF خروجی می تواند بصورت یک جدول باشد در این حالت از کلمه Table به جای نوع مقدار برگشتی استفاده خواهد شد و مقدار بازگشتی یک دستور Select خواهد بود که در مقابل دستور Return بکار خواهد رفت و تعداد پارامترهای تعریف شده در هر UDF حداکثر 1024 عدد خواهد بود و مشابه SP درصورتیکه پارامتر موردنظر ارائه نگردد پیش فرض بعنوان مقدار ورودی پارامتر مدنظر قرار خواهد گرفت نکته قابل ذکر در این خصوص به شرح ذیل می باشد:
- درهنگام اجرای یک تابع نام Owner می بایستی ذکر گردد بعنوان مثال ( dbo )
- تعدادی از دستورات درون طراحی UDF قابل اجرا نمی باشند.
- از (ESP) Extended Stored Procedure درون تابع می توانید استفاده نمائید.
مثال : تابعی بنویسید که فاکتوریل یک عدد را محاسبه کند.
Create Function Fact (@n TinyInt)
Returns BigInt
AS
Begin
Declare @RtnValue BigInt
IF @n = 0 or @n = 1
Set @RtnValue = 1
ELSE
Set @RtnValue = dbo.Fact (@n – 1) *@n
Return @RtnValue
END
حال فرض کنید که قرار است تابع فوق در یک برنامه استفاده گردد و قرار باشد سری محاسبه گردد بدین منظور به شکل ذیل عمل خواهیم نمود:
Declare @S BigInt , @C TinyInt
Set @S = 0
Set @C = 0
While @C < 10 Begin
Set @C = @ C + 1
Set @S = @ S + dbo.Fact (@C )
END
Select @S
خب دوستان تا اینجا توابع به پایان رسید. در بحث بعدی سایر دستورات کاربردی در اس کیو ال رو بررسی می کنیم.
موفق باشید