مفهوم Stored Procedure ها در پایگاه اطلاعات چیست؟
Stored Procedure ها عبارت از یک یا چندین دستورSQL بوده و یک واحد برنامه ی قابل اجراست که میتواند به عنوان شئ در پایگاه داده ذخیره شود. با علامه اختصاری SP نیز نوشته میشود، این sp ها میتواند از برنامه های کاربردی مشترک اجرا شود تا اجرای خوبی پیدا کند. SP میتواند از صفحه های دیگر و یا حتی Stored Procedure های دیگر نیز خوانده شود.
SP ذخیره شده در پایگاه داده می تواند دارای ورودی و خروجی باشد و تمامی اعمال اصلی بر روی یک پایگاه اطلاعات (Create, Read, Update, Delete) را که به آنان اختصارا CRUD می گویند را می توان در SP تعریف کرد. از مهم ترین مزایای استور پروسیجر این است که یک بار نوشته می شوند و هر زمانی که نیاز به استفاده از آنها باشد، فراخوانی و اجرا می شوند.
حتما بخوانید:خودشناسی یک تلاش آگاهانه در مسیر پیشرفت و خودسازی است
Stored Procedure هامی توانند نقش مهمی در جلوگیری از Injection SQL ها داشته باشند، زیرا نوع داده های (Data Type) پارامترهای ورودی نیز کنترل می شود. همچنین در پایگاه های داده SP ها مکانیزم کنترل دسترسی دارند و می توان کاربرانی که امکان فراخوانی و اجرای آنها را دارند را نیز تعیین نمود.
نحوی ساختن Stored Procedure طور ذیل میباشد
- SQL Server را باز کرده و وارد دیتابیس مورد نظر تان شده و بالای آن کلیک کرده و گزینه programmability را باز کنید و بعد وارید بخش Stored Procedure شوید.
- بر روی Stored Procedure راست کلیک کرده و New Stored Procedure را انتخاب نمایید .
- بعداز ساختن یک Stored Procedure جدید شما به کد های ازقبل نوشته شده روبرو میشوید ولی تشویش نکنید نیاز نیست شما آنرا یاد بیگیرید همه آنرا پاک کرده و مطابق ذیل کد نویسی کنید.
1 2 3 4 5 6 7 |
Create Procedure ProcedureName(@FirstParamete DataType,@SecondParameter DataType,...) As Begin SQLStatement End |
در قسمت ProcedureName نام Stored Procedure مورد نظر تانرا تایپ کنید.
در قسمت SQLStatement دستورا SQl را که بینBegin و End نوشته می شوند تایپ کنید ..
در قسمت پرانتز مقابل نام procedure تان پارامتر همرا با نوع آن تعین میشود، پارامتر ها توسط کامه ازهم جدا میشود.
مثال
Stored Procedure زیر اطلاعات کارمند را با دریافت پارامتر نام کارمند (@fName) از جدول Staff دریافت می کنیم.
1 2 3 4 5 6 7 |
Create Procedure Staff(@fName nvarchar(100)) As Begin SELECT * FROM Staff WHERE fName = @fName |
فواید و قابلیت های Stored Procedural
- Precompiled میباشد یعنی بطور کامل از اول ترجمه نمیشود ، این امر باعث افزایش سرعت بارگزاری می گردد .
- قابلیت ذخیره داشته و میتوان از یک Stored Procedural چندین بار در کد نویسی استفاده کرد .
- دارای ویرایشگمر Queryمی باشد (میتوانید به سادگی یک Query حرفه ای ایجاد کنید)
- دارای Syntax Parserهست و از خطاهای SQL جلوگیری می کند .
- دارای امنیت بالایی است و از هک شدن سایت شما توسط SQL Injectionدر بسیاری موارد جلوگیری می کند .
- قابلیت درج چندین دستور SQLرا پشت سرهم داراست .
- قابلیت ارسال ورودی و خروجی دارد .
- قابلیت برنامه نویسی ( شرط ، حلقه و…) به زبان TransactSQLدارد .
برای آموزش های بیشتر رجوع را دنبال کنید