آشنایی با Stored Procedure

با نام و یاد خداوند. سلام خدمت کاربران گرامی
در جلسات قبل شما را با چگونگی ساختن جداول ،ساختن کوئری ها و با دستوراتی که مهم تر و کاربردی تر  بودند آشنا کرده ایم . در این جلسه قصد داریم تا  شما را با پروسیجرها  (Procedure) آشنا کنیم.

پروسیجر (Procedure)

پروسیجر (procedure) به معنای رویه های ذخیره شده می باشد و همانند کدهای آماده ای است که در SQL،در بانک اطلاعاتی آن ذخیره شده است . که  شامل یک یا چند دستور است که این دستورات  می توانند ورودی ها و خروجی های متفاوتی داشته باشد.

مزایای پروسیجر ها (Procedure)

  1. اصلی ترین علتی که ما در برنامه نویسی از پروسیجرها استفاده می کنیم امنیت است زیرا در هنگام کدنویسی درگیر نوشتن کد های sql نمی شویم و فقط هنگام نیاز، پروسیجر  مورد نظر را صدا می زنیم این کار باعث بالا رفتن امنیت می شود،چون کد های برنامه نویسی ما دیکد(متن یا هر چیزی که رمز گذاری شده باشدو بتوان آن را به حالت اولیه باز گرداند دیکد می گویند   ) نمی شوند .برای مثال اگر برای فرم لاگین ، دستورات چک کردن نام کاربری و رمز عبور به نرم افزار را درون خود محیط برنامه نویسی کد نویسی کنیم امنیت برنامه به خطر می افتد .
  1. سرعت اجرای نرم افزارهایی که طراحی می کنیم بالاتر می رود چون داخل محیط کد نویسی دستورات sql اجرا نمی شود و دستورات داخل خود  sql  اجرا می شوند .
  1. هنگام طراحی نرم افزار دارای یک ساختار منسجم هستیم .
  2.  از جمله مزایای دیگر پروسیجر (procedure) این است که میتوان یک بار کدها را نوشت و هر زمان که به آن  نیاز پیدا کردیم بدون نیاز به نوشتن کد جدید از آن استفاده کنیم ، و همین طور می توان به راحتی کد های داخل پروسیجر (procedure) را تغییر داد.و همچنین در  پروسیجر می توان دستوراتی از جمله Select,Insert,Update,Delete یا  ترکیبی از آنها را نوشت.

 

ساختار دستور استور پروسیجر (Stored Procedure)

نحوه ایجاد استور پروسیجر (Stored procedure)

از 2 طریق می توانیم استور پروسیجر را ایجاد کنیم:

1) انتخاب New Query  از نوار  Menu

نحوه ایجاد پروسیجر

2) روی زیر شاخه ی Stored Procedures راست کلیک کرده و گزینه ی New را زده و از این قسمت Stored Procedure  را انتخاب می کنیم .

برای پیدا کردن زیر شاخه ی Stored Procedures  وارد دیتابیس خودمان  می شویم  ،شاخه Programmability را مشاهده می کنید اگر آن را باز کنید،می توانید  زیر شاخه ی  Stored Procedure را ببینید .

نحوه ایجاد پروسیجر - مرحله2

بعد از انتخاب گزینه ی Stored Procedure  ، صفحه ای مطابق شکل زیر برای ما باز می شود که در این صفحه کد های پیش فرضی وجود دارد که به این کدها نیازی نداریم ،کامل آن ها را حذف کرده و شروع به کد نویسی می کنیم.

نحوه ایجاد پروسیجر - مرحله 3

برای آشنایی شما با ایجاد دستور استور پروسیجر (Stored Procedure) با یک مثال آغاز می کنیم.

مثال 1 :

پروسیجری(Procedure) بنویسید که تمامی فیلدهای جدول Student و مقادیر آن ها را در خود نگهداری کند ، برای انجام این کار به روش زیر عمل می کنیم:

نکته: معمولا برای نام پروسیجر(Procedure) قبل از آن، از حروف  Sp که مخفف Stored Procedure می باشد استفاده می شود،به طور مثال Sp_ShowStudent .

بعد از نوشتن دستورات پروسیجر مربوطه ، باید گزینه Execute  را انتخاب کنید تا پروسیجر شما ساخته شود. و پیغام  command completed successfully را مشاهده کنید.

نکته: اگر هر پیغامی به غیر از این پیغام را مشاهده کردید یعنی مشکلی در دستورات شما وجود دارد .

طبق شکل زیر پروسیجر ما با موفقیت ساخته شد .

مثال 1 - پروسیجر

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

پروسیجرها (Procedure) ، در شاخه Programmability و زیر شاخه Stored Procedure قرارمی گیرند .

پروسیجر

نکته: در صورتی که پروسیجری  را مشاهده نکردید بر روی Stored Procedure راست کلیک کرده و Refresh را بزنید.

مشاهده ی مجدد پروسیجر  (Procedure)

روی پروسیجر مورد نظر راست کلیک کرده و گزینه ی  Modify  را انتخاب می کنید

مطابق تصویر زیر:

مشاهده مجدد پروسیجر

مشاهده می کنید که پروسیجرتان مطابق دستوراتی که نوشته اید باز می شود ولی با تغییراتی و کدهای اضافه.که این کدهای اضافه توضیحاتی درباره پروسیجر ی که ساخته اید می باشد مثلا [Use [dtest1  یعنی این پروسیجر مربوط به دیتابیس dtest1  شما است . که می توانید این کدهای اضافه را حذف کنید .

اما اگر خوب مشاهده کنید کلمه ی کلیدی create  به  alter  تغییر کرد ه است چرا؟ کلمه ی کلیدی create به معنای ساختن و کلمه ی کلیدی alter  به معنای تغییر دادن و ویرایش است . برای  تغییر دادن یا اضافه کردن هر  دستوری در  پروسیجری که یکبار در دیتابیس ایجاد  شده است  باید از کلمه ی کلیدی alter   استفاده شود   ،  اگر از کلمه ی کلیدی  create   استفاده  کنید   با خطای زیر مواجه می شوید.

There is already an object named ‘ Sp_ShowStudent’ in the database.

این خطا بدین معناست که پروسیجری با نام Sp_ShowStudent  در این دیتابیس وجود دارد.

حال برای اینکه خروجی  پروسیجرمان  (Procedure) را مشاهده کنیم، به روش زیر عمل می کنیم:

یکی از دستورات بالا را می نویسیم و حتما آن را انتخاب می کنیم وبعد از انتخاب ، گزینه Execute  را می زنیم:

مشاهده می کنید که تمام مقادیر جدول student  را نمایش می دهد

چند مثال دیگر از پروسیجر می زنیم تا شما را بیشتر با پروسیجر و قابلیت های آن آشنا کنیم .

مثال 2 :

پروسیجر (Procedure) با یک شرط

پروسیجری بنویسید که اطلاعات افرادی که سن آن های بالای 26 سال است را نمایش دهد.

پروسیجر با شرط

مثال 3 :

پروسیجر (Procedure) با پارامتر ورودی

حال ممکن است در پروسیجری (Procedure) بخواهیم اطلاعات افرادی با سن های مختلف نمایش داده شود و پروسیجر ما (Procedure) پویا باشد که در این صورت لازم نیست  برای هر کدام ، کدهای جداگانه ای نوشته شود و می توان با استفاده از پارامتری های ورودی ، مقدار های متفاوتی را جست و جو کرد.

به کد های زیر دقت کنید:

پروسیجر با پارامتر ورودی

*** Age@ پارامتری ورودی است که به جای Age می توان هر نام دیگری را قرار داد،Int  نوع (Type) پارامتر ورودی است که برای هر کدام از پارامتر ها ،  نوع های متفاوتی وجود دارد از جمله nchar,nvarchar و …

***  پارامترهای ورودی بین نام پروسیجر (Procedure) و As قرار می گیرند.

حال برای اینکه خروجی این  پروسیجر (Procedure) را مشاهده کنیم  باید برای  پارامتر ورودی Age مقداری دهی کنیم.

شیوه مقدار دهی،به روش زیر می باشد:

پروسیجر - خروجی

*** مقدار 30  به جای @Age قرار می گیرد و اطلاعات افرادی که سن آن ها بالای 30 سال است نمایش داده می شود.

 

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

امیدوارم این آموزش مفید واقع شده و نهایت استفاده را برده باشید، در جلسه بعد قصد داریم تا شما را با Insert Stored Procedure (پروسیجر اضافه کردن) آشنا کنیم.

 

با  آموزش SQL Server در خدمت شما هستیم. لطفا سوالات ، نظرات و پیشنهادات خود را در قسمت دیدگاه ها با ما در میان بگذارید.

به این مقاله چند تا ستاره میدی؟
[تعداد رای: 42 امتیاز: 4]