در قسمت پانزدهم و شانزدهم آموزش SQL Server ،توابع (Functions) در SQL Server را به شما آموزش دادیم و همچنین تابعی ساختیم که خروجی آن از نوع جدول بود و جدول ساخته شده را مشاهده و بررسی کردیم.در این قسمت از آموزش SQL Server قصد داریم حالت های مختلف کد نویسی را به شما آموزش دهیم…
حالت های مختلف کد نویسی ،البته این تمام حالات نیست و تمام حالات بسیار فراتر میبباشد اما میتوان گفت این حالات کاربردی تر میباشند.برای مثال در کد زیر با هربار اجرا یک ID متفاوت به ما میدهد و خود شرکت Microsoft تضمین کرده که به هیچ عنوان یک مقدار تکراری را نخواهید گرفت.
حال میخواهیم از این دستور در دیتابیس خود استفاده کنیم به صورت زیر
Select Top 7* From Tbl_Ketab Order By NEWID()
دستورات فوق در واقع ۷ ستون ابتدایی جدول کتاب را برای ما براساس NewID مرتب کنو نمایش بده بدین معنی که در هربار اجرا مقادیر خروجی متفاوت از قبل میباشد و این روش برای زمانی مناسب است که ما بخواهیم در برنامه مقادیر تصادفی و غیر تکراری را دریافت کنیم و ان مقدار را هربار به یک تابع یا کوری یا پروسیجر اختصاص دهیم.
حال میخواهیم با Temp ها کار کنیم که رفتاری مثل جداول دارند به مثال زیر دقت کنید
With Temp(Code,Total,A) AS ( Select Tbl_Amanat.Code_Ketab,Sum(Tbl_Ketab.tedad*Qeymat),0 From Tbl_Amanat,Tbl_Ketab Where Tbl_Ketab.Code_Ketab=Tbl_Amanat.Code_Ketab Group By Tbl_Amanat.Code_Ketab ) Select Name_Ketab,Total,A From Tbl_Ketab,Temp Where Tbl_Ketab.Code_Ketab=Code
در مثال فوق ما یک Temp که در بالا توضیح داده ایم را با نام Temp با کلمه کلیدی With ساخته ایم و سه نام سه ستون را به ان داده ایم که در ادامه انها را مقداردهی کرده ایم با نام های Code که به کد کتاب اشارع دارد و Total که میتوان یک عملیات جمع و ضرب را در ان قرار داد و A که یک ستون دلخواه میباشد که حتی میتوان مقدار ثابتی به ان داد سپس عبارت AS و سپس هم در پرانتز باز و بسته مقادیری را به ستون های تعیین شده میدهیم مثلا ما کد کتاب از جدول امانت را انتخاب کرده ایم که این مقدار مربوط به ستون Code میشود و مقدار Code_Ketab,Sum(Tbl_Ketab.tedad*Qeymat), را تعیین کرده ایم برای ستون Total و برای ستون A هم مقدار ثابت ۰ را در نطر گرفته ایم و در انتها نیز Group By را تنظیم کرده ایم چون در کوری از Aggrigate Function ها استفاده کرده ایم که از فیلد کد کتاب در جدول امانت برای Group By استفاده کرده ایم حال خارج از دستورات مربوط به Temp دستوراتی برای مشاهده نتیجه تایپ میکنیم که این دستورات شامل یک Select ساده میباشد که فیلد های Name_Ketab اط جدول Tbl_Ketab و Total و A از جدول Temp که ساخته شد را انتخاب میکنیم و شرطی هم برای ان در نظر میگیریم که همان شرط join میباشد.
حال با اجرای این دستورات نتیجه زیر را مشاهده میکنیم