Stored Procedure چیست ؟

چهارشنبه 25 اردیبهشت 1392

Stored Procedure چیست ؟ <br/> Stored Procedure یا Sp یا به زبان فارسی " رویه های ذخیره شده " اشیایی اجرا پذیر در بانک اطلاعاتی SQL Server هستند که شامل یک یا چندین دستور SQLمی شود ، این رویه ها میتوانند پارامتر های ورودی و خروجی داشته باشند .

Stored Procedure یا Sp یا به زبان فارسی " رویه های ذخیره شده "  اشیایی اجرا پذیر در بانک اطلاعاتی   SQL Server هستند که شامل یک یا چندین دستور SQLمی شود ، این رویه ها میتوانند پارامتر های ورودی و خروجی داشته باشند .
همچنین میتوان داخل این رویه ها به زبان SQL برنامه نویسی کرد .
مهم ترین کاربر این رویه ها ذخیره کردن دستورات Select , Insert , Update , Delete هست یا ترکیبی از اینها .
نحوه ساخت این رویه ها به صورت زیر می باشد :

  • وارد بانک اطلاعاتی SQL Server شده ، پس از باز کردن بانک مورد نظر در قسمت Programmability وارد بخش Stored Procedure شوید .
  • بر روی Stored Procedure  کلیک راست کرده و New Stored Procedure را انتخاب نمایید .
  • احتمالا کد های پیشفرضی را در این صفحه مشاهده می کنید ، همه این کد هارا پا کرده و به صورت زیر کد نویسی کنید :

کد فوق شکل کلی ساخت رویه های ذخیره شده می باشد .

به جای YourProcedureName یک نام برای برای رویه انتخاب کنید . سعی کنید نامی که انتخاب می نمایید مفهوم رویه شما را برساند مثلا برای درج یک رکورد جدید در جدول Members من نام AddNewMember را انتخاب می کنم و یا برای دریافت تمام رکورد های این جدول نام GetAllMembers نام با مفهومی است .

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

به جای SQLStatement  دستورات  SQl  را که بین Begin   و End  نوشته می شوند تایپ کنید .

دستوراتی مانند Select , Insert , Update , Delete   و....

به عنوان مثال Sp زیر اطلاعات کاربر را با دریافت پارامتر نام کاربری ( ( @ID  از جدول TBL_Members دریافت می کند :

سپس بر روی دکمه Execute کلیک کرده تا رویه شما ساخته و ذخیره گردد .

برخی از قابلیت های رویه های ذخیره شده یا Stored Procedure  عبارت است از :


  1. Precompiled
     بودن آنها به این معنی که به زبان ماشین بسیار نزدیک شده و به طور کامل از اول ترجمه نمیشود ، این امر باعث افزایش سرعت بارگزاری می گردد .
  2. قابلیت ذخیره داشته و میتوان از یک رویه چندین بار در کد نویسی استفاده کرد .
  3. دارای ویرایشگر Query می باشد (میتوانید به سادگی یک Query حرفه ای ایجاد کنید)
  4. دارای Syntax Parser هست و از خطاهای SQL جلوگیری می کند .
  5. دارای امنیت بالایی است و از هک شدن سایت شما توسط SQL Injection در بسیاری موارد جلوگیری می کند .
  6. قابلیت درج چندین دستور SQL را پشت سرهم داراست .
  7. قابلیت ارسال ورودی و خروجی دارد .
  8. قابلیت برنامه نویسی ( شرط ، حلقه و...) به زبان TransactSQL دارد .

و.....

 

حال که با قابلیت ها ونحوه ساخت Stored Procedure آشنا شدید بد نیست که به نحوه استفاده از این ابزار جالب در Asp.NET بپردازیم .

استفاده از این ابزار بسیار ساده هست .  اگر از SQL Datasource  یا ObjectDatasource استفاده می کنید یک ویزارد برای ساخت و استفاده از Stored Procedureها قرار داده شده که به راحتی آن را مدیریت کنید .

اگر از کد نویسی برای کار با بانک های اطلاعاتی استفاده می کنید کافیه بعد از تعریف SQLCommand به جای دستورات SQL نام SP را وارد نموده و بعد از آن کد زیر را اضافه نمایید :

این کد به برنامه می گوید که دستورات نوشته شده از نوع Stored Procedure هستند و نیازی به ترجمه آن ها نیست .

در نهایت کد های اتصال ما به شکل زیر خواهد بود :

برای ارسال پارامتر هم به صورت زیر عمل می کنیم :

همانطور که ملاحظه می فرمایید فرض کردم که SP داری دو پارامتر به نام FirstParam و SecondParam هست (البته شما باید به شکل صحیحی پارامتر ها را نام گزاری کنید) و از طریق متد AddWithValue آنهارا مقدار دهی نموده ام .

امیدوارم این مقاله برای شما مفید باشد .

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید