Stored Procedure چیست ؟
چهارشنبه 25 اردیبهشت 1392Stored 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 را انتخاب نمایید .
- احتمالا کد های پیشفرضی را در این صفحه مشاهده می کنید ، همه این کد هارا پا کرده و به صورت زیر کد نویسی کنید :
Create Procedure YourProcedureName(@FirstParamete DataType,@SecondParameter DataType,...) As Begin SQLStatement End
کد فوق شکل کلی ساخت رویه های ذخیره شده می باشد .
به جای YourProcedureName یک نام برای برای رویه انتخاب کنید . سعی کنید نامی که انتخاب می نمایید مفهوم رویه شما را برساند مثلا برای درج یک رکورد جدید در جدول Members من نام AddNewMember را انتخاب می کنم و یا برای دریافت تمام رکورد های این جدول نام GetAllMembers نام با مفهومی است .
در پرانتز مقابل نام رویه پارامتر های رویه به همراه نوع پارامتر تعیین میشود ، اگر تعداد پارامتر ها بیشتر از یکی بود با ویرگول آنها را جدا می کنیم .
به جای SQLStatement دستورات SQl را که بین Begin و End نوشته می شوند تایپ کنید .
دستوراتی مانند Select , Insert , Update , Delete و....
به عنوان مثال Sp زیر اطلاعات کاربر را با دریافت پارامتر نام کاربری ( ( @ID از جدول TBL_Members دریافت می کند :
create procedure GetMemberbyID(@ID nvarchar(100)) as begin select * from TBL_Members where ID=@ID end
سپس بر روی دکمه Execute کلیک کرده تا رویه شما ساخته و ذخیره گردد .
برخی از قابلیت های رویه های ذخیره شده یا Stored Procedure عبارت است از :
Precompiled بودن آنها به این معنی که به زبان ماشین بسیار نزدیک شده و به طور کامل از اول ترجمه نمیشود ، این امر باعث افزایش سرعت بارگزاری می گردد .- قابلیت ذخیره داشته و میتوان از یک رویه چندین بار در کد نویسی استفاده کرد .
- دارای ویرایشگر Query می باشد (میتوانید به سادگی یک Query حرفه ای ایجاد کنید)
- دارای Syntax Parser هست و از خطاهای SQL جلوگیری می کند .
- دارای امنیت بالایی است و از هک شدن سایت شما توسط SQL Injection در بسیاری موارد جلوگیری می کند .
- قابلیت درج چندین دستور SQL را پشت سرهم داراست .
- قابلیت ارسال ورودی و خروجی دارد .
- قابلیت برنامه نویسی ( شرط ، حلقه و...) به زبان TransactSQL دارد .
و.....
حال که با قابلیت ها ونحوه ساخت Stored Procedure آشنا شدید بد نیست که به نحوه استفاده از این ابزار جالب در Asp.NET بپردازیم .
استفاده از این ابزار بسیار ساده هست . اگر از SQL Datasource یا ObjectDatasource استفاده می کنید یک ویزارد برای ساخت و استفاده از Stored Procedureها قرار داده شده که به راحتی آن را مدیریت کنید .
اگر از کد نویسی برای کار با بانک های اطلاعاتی استفاده می کنید کافیه بعد از تعریف SQLCommand به جای دستورات SQL نام SP را وارد نموده و بعد از آن کد زیر را اضافه نمایید :
Cmd.CommandType = CommandType.StoredProcedure;
این کد به برنامه می گوید که دستورات نوشته شده از نوع Stored Procedure هستند و نیازی به ترجمه آن ها نیست .
در نهایت کد های اتصال ما به شکل زیر خواهد بود :
SqlConnection Con=new SqlConnection("YourConnectionString"); SqlCommand Cmd = new SqlCommand("YourProcedureName", Con); Cmd.CommandType = CommandType.StoredProcedure; Con.Open(); // Some Code...
برای ارسال پارامتر هم به صورت زیر عمل می کنیم :
SqlConnection Con = new SqlConnection("YourConnectionString"); SqlCommand Cmd = new SqlCommand("YourProcedureName", Con); Cmd.CommandType = CommandType.StoredProcedure; Cmd.Parameters.AddWithValue("@FirstParam", Textbox1.Text); Cmd.Parameters.AddWithValue("@SecondParam", Textbox2.Text); Con.Open(); // Some Code...
همانطور که ملاحظه می فرمایید فرض کردم که SP داری دو پارامتر به نام FirstParam و SecondParam هست (البته شما باید به شکل صحیحی پارامتر ها را نام گزاری کنید) و از طریق متد AddWithValue آنهارا مقدار دهی نموده ام .
امیدوارم این مقاله برای شما مفید باشد .
- SQL Server
- 17k بازدید
- 4 تشکر