آموزش SQL Server – قسمت شانزدهم

آموزش SQL Server

در قسمت پانزدهم آموزش SQL Server ،توابع (Functions) در SQL Server را به شما آموزش دادیم و همچنین تابعی ساختیم که خروجی آن از نوع جدول بود. دراین قسمت میخواهیم جدول ساخته شده را مشاهده و بررسی کنیم با ما همراه باشید…

آموزش SQL Server – قسمت شانزدهم

توجه : برای مشاهده ی تصاویر در سایز اصلی بر روی آنها کلیک کنید.

خروجی توابع در SQL Server

در آموزش قبل ما تابعی ساختیم که خروجی آن از نوع جدول بود .رفتار جدول را داشت ،حال میخواهیم جدول ساخته شده را مشاهده و بررسی کنیم پس به مثال زیر دقت کنید

در مثال فوق ما یک تابع با نام NewTable ساخته ایم که یک پارامتر ورودی دریافت میکند  به نام @code که ار نوع Integer نیز میباشد و خروجی ان نیز از نوع جدول و با نام @Result میباشد سپس برای جدول موقت فیلد های Code و Name را تعریف کرده ایم که فیلد کد از نوع Integer و شناسه جدول تعیین شده و فیلد Name که از نوع Nvarchar(50) میباشد سپس کلمات کلیدی As و Begin که دستورات را در بدنه Begin و End مینویسیم که دستورات نوشته شده میگوید مقدار فیلد Name_Ketab از جدول Tbl_Ketab انتخاب کن و در جدول موقت @Result که ساخته ایم درج کن البته به شرط انکه مقدار فیلد Code_Ketab برابر با پارامتر ورودی @code که از کاربر میگیرد برابر باشد.

حال میخواهیم مقداری به تابع داده و نتیجه را مشاهد کنیم پس دستورات زیر را در ادامه ذکر میکنیم

توابع در SQL Server
توابع در SQL Server

همانند تصویر فوق دو خط کدی که هایلایت شده را اضافه میکنیم که یک کوری ساده Select میباشد که تمام مقادیر از تابعی که ساختیم را انتخاب میکند و چون خروجی تابع NewTable از نوع Table تعیین شده میتوان Select را روی ان انجام داد چون خروجی این تابع دیگر رفتاری مثل جداول دارد همچنین یک مقدار به عنوان ورودی نیز به تابع داده ایم که پس از اجرا نتیجه مطلوبی خواهیم داشت.

حال میخواهیم از تمامیه ویژگی هایی که تا به حال اموزش داده ایم مثل پروسیجرها و توابع و .. در این مثال استفاده کنیم.برای این مثال ما دوتابع مجزا میسازیم سپس از ان دوتابع در پروسیجر استفاده میکنیم

 

تابع فوق دو مقدار کد و شماره ماه را از ورودی میگیرد و حاصل ضرب مقدار فیلد قیمت و تعداد کتاب را در ماهی که به امانت رفته شده را بر میگرداند و اگر هم در ان ماه کتابی به امات نگرفته شده باشد مقدار صفر را نمایش میدهد همچنین از Aggrigate Function هم برای بدست اوردن شماره ماه از تازیخ دریافت کتاب استفاده شده.حتی میتوان همین تابع را اجرا کرده و نتیجه را گرفت با استفاده از دستورات زیر

 

حال تابع دیگری نوشته و از این تابع درون ان استفاده میکنیم

 

در تابع فوق میزان قیمت کتاب هایی که در ماه وارد شده و یک ماه قبل تر را نمایش میدهد در این تابع که خروجی ان به شکل جدول است و سه فیلد برای ان تعیین شده و در بدنه  این تابع یک حلقه While ذکر شده که در ان از ۱ تا ۱۲ را میشمارد به عنوان ۱۲ ماه و هر ماه را توسط شمارنده @counter چک میکند و در دوماه نتیجه را نشان میدهد و همانگونه که مشاهده میکنید در حلقه While از تابعی که در بالا گفته شد استفاده شده و در اخر نیز بدنه حلقه و تابع را میبندیم.

این تابع هم مانند تابع اول میتوان اجرا کرد و نتیجه را مشاهده کرد

 

توسط دستورات فوق نتیجه این تابع را هم میتوان مشاهده کرد

توابع در SQL Server
توابع در SQL Server

نتیجه تابع به صورت تصویر فوق است همانگونه که مشاهده میکنید در ماههایی که کتابی با کد ۸  به امانت رفته مقدار فیلد تعداد و قیمت ان کتاب در هم ضرب و سپس جمع میشوند و نمایش داده میشوند.

حال میخواهیم از پروسیجری استفاده کنیم که سود و زیان امانت هارا به ما نمایش دهد پس به صورت زیر دستورات را مینویسیم

 

همانگونه که در پروسیجر تعریف شده فوق مشاهده میکنید ما ابتدا یک پارامتر ورودی با عنوان کد تعیین کرده ایم و در ادامه از Case استفاده شده که اگر ماه اول از ماه دوم کوچکتر باشد به معنی سود و اگر بزرگتر بود به عنوان زیان نمایش داده میشود در غیر این صورت مقدار ثابت است و مقدار رشته ایه Sabet را نمایش میدهد و عبارت Cast که تعریف شده بدین معنی است که فیلد SecondMonth را به نوع Float تبدیل میکند چون ممکن است که در توابع بالا نتیجه حاصل ضرب و جمع ها از نوع Int بیشتر شود به همین دلیل بدین صورت انرا به نوع دیگر تبدیل میکنیم.

به عبارت دیگر این پروسیجر شماره ماهها و سود وزیان را براساس تابع قبل که رفتار جدول داردمشخص کرده و نمایش میدهد. پس از نوشتن این دستورات برای دیدن نتیجه باید به مسیر ذخیره پروسیجر برویم که به شرح زیر میباشد Library/Programmability/Stored Procedure و به روی پروسیجر ساخته شده کلیک راست کرده و Execute Stored Procedure.. را کلیک میکنیم و یک مقدار به عنوان کد کتاب به ورودی میدهیم و انرا اجرا میکنیم

توابع در SQL Server
توابع در SQL Server

همانگونه که در تصویر فوق مشاهده میکنید ما یک مقدار ورودی در قسمت Value میدهیم که کد کتاب محسوب میشود و ok را کلیک میکنیم و نتیجه را به صورا فوق خواهیم دید.

مدرس : خانم مهندس داودی نژاد

آموزش SQL Server – قسمت پانزدهم

آموزش SQL Server – قسمت هفدهم

درباره نویسنده

مطالب مرتبط

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *