Stored Procedures

مقدمهstored procedure ها دارای نام مشخص هستند که در دل آنها مجموعه ای از دستورات کوئری ساختاریافته وجود دارند که در یک سیستم مدیریت پایگاه داده رابطه ای (RDBMS) ذخیره می شود و می توان آن را بارها و بارها مورد استفاده قرار داد.مزایای استفاده از stored procedure1. یک stored procedure یک لایه امنیتی مهم بین رابط کاربری و پایگاه داده فراهم می کند2. از طریق کنترل‌های دسترسی به داده‌ها از امنیت پشتیبانی می‌کند، زیرا کاربران نهایی ممکن است داده‌ای را وارد یا تغییر دهند، اما نیازی به نوشتن procedure نخواهند داشت.3. یک stored procedure یکپارچگی داده ها را حفظ می کند زیرا اطلاعات به شیوه ای ثابت وارد می شوند.4. بهره وری را بهبود می بخشد زیرا دستورات در یک stored procedure فقط باید یک بار نوشته شوند.5. کوئری ها به طور مستقیم در رابط گرافیکی نوشته میشوند و این میتواند برای کارهای ساده مفید باشد اما برای کارهای پیچیده مشکل ساز میشود به همین دلیل stored procedure جایگزین خوبی هستند6. به دلیل این که stored procedure را میتوان به واحدهای کوچک تر و مستقل تر تقسیم کرد ، در صورت بروز مشکل در یک برنامه می توان مشکل را به راحتی در یک واحد کوچک تر تجزیه و تحلیل کرد و علت ان را تشخیص داد . این امر می تواند فرایند رفع عیب را آسان تر و سریع تر کند.7. اگر عملکرد یک رابط کاربر گرافیکی ضعیف باشد ، به جای این که کد منبع رابط کاربر گرافیکی را اصلاح کنیم ، میتوانیم عملکرد stored procedure را که رابط کاربری گرافیکی از آن استفاده میکند با تنظیم پارامترهای مختلف بهبود بخشیم . این امر می تواند به بهبود عملکرد رابط گرافیکی کمک کند بدون اینکه نیاز به اصلاح کد منبع رابط گرافیکی باشیمstored procedure در SQLstored procedure در SQLمی توانند برای انجام عملیات مختلف در پایگاه داده استفاده شوند. آنها می توانند پارامترهای ورودی را بپذیرند و مقادیر متعددی از پارامترهای خروجی را برگردانند .stored procedure در پایگاه داده تعریف شده توسط کاربر یا در همه پایگاه‌های داده سیستم ایجاد می‌شوند، به جز زمانی که از پایگاه داده منبع استفاده میشود.procedureهای موقت در Tempdbذخیره می شوند و دو نوع procedureموقت وجود دارد: محلی و سراسری (local and global)procedure‌های محلی فقط برای اتصال کاربر فعلی قابل مشاهده هستند، در حالی که procedure‌های جهانی پس از ایجاد برای هر کاربری قابل مشاهده هستند.syntax stored procedure به صورت زیر استCREATE PROCEDURE procedure_name AS sql_statement GO;و برای اجرای ان از EXEC استفاده میکنیم :EXEC procedure_nameیک بخش از جدول customer را در اینجا داریم:بخشی از پایگاه داده northwinمثال زیر یک procedure با نام Allcustomers میسازد که در آن تمام جدول customer را نمایش میدهد.CREATE PROCEDURE AllCustomers AS SELECT * FROM Customers GO;و برای اجرای این کوئری داریم :EXEC AllCustomers;در storeprocedure ها از متغییرها نیز میتوان استفاده کردبه عنوان مثال procedure زیر از جدول Customers شهر خاصی رو انتخاب می کندCREATE PROCEDURE AllCustomers @City nvarchar(30) AS SELECT * FROM Customers WHERE City = @City GOو هنگام اجرای آن می خواهیم شهر لندن را به عنوان خروجی برگرداندEXEC AllCustomers @City = 'London'می توان به جای لندن هر شهر دیگری را قرار داد تا رکورد مربوط به آن شهر را برگرداند.اگر بخواهیم در storeprocedure از چند متغیر استفاده کنیم ، کافیست آنها را با " ," از هم جدا کنیم.به عنوان مثال اگر بخواهیم از جدول customer شهر و کد پستی خاصی را به عنوان خروجی دریافت کنیم ، داریم :CREATE PROCEDURE AllCustomers @City nvarchar(30), @PostalCode nvarchar(10) AS SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode GOحال برای خروجی میخواهیم شهر لندن و کد پستی WA1 1DP را داشته باشیم ، پس:EXEC AllCustomers @City = 'London', @PostalCode = 'WA1 1DP'منابعw3schools . (11-07-2023) . https://www.w3schools.com/sql/sql_stored_procedures.aspHughes,Adam,(2019),store procedure, https://www.techtarget.com/searchoracle/definition/stored-procedure