چیست؟ STORED PROCEDURE
- Stored Procedure (SP) در واقع یک زبان برنامه نویسی در SQL محسوب میشود.
- اگر قرار است یک کوئری را بارها و بارها اجرا کنید میتوانید برای آن یک SP بنویسید تا در زمان مشخص فراخوانی شده و اجرا شود.
- همچنین میتوانید یکسری پارامتر را به عنوان ورودی برای برای کد SP ارسال کنید و کد SP نیز بر روی پارامترهای دریافتی عملیات انجام دهد.
- کدهای SP باید در قالب زیر نوشته شوند:
CREATE PROCEDURE procedure_name AS sql_statement GO;
- برای اجرای کدهای SP نیز باید از دستور زیر استفاده کنید:
EXEC SelectAllCustomers;
مثال:
- در مثال زیر یک Procedure به نام Customers ساخته شده و در بدنه آن یک کوئری جهت واکشی اطلاعات مشتری ها نوشته شده است.
CREATE PROCEDURE Customers AS SELECT * FROM Customers GO;
EXEC Customers;
- امکان تعریف پارامتر ورودی برای برای SPها وجود دارد. تعریف پارامتر ورودی در ابتدای SP و در کنار نام SP تعریف میشود.
- دقت کنید که هنگام تعریف پارامتر ورودی باید نوع پارامتر نیز مشخص شود.
مثال:
- در مثال زیر پارامتر City به طول ۳۰ کاراکتر به عنوان ورودی تعریف شده است.
CREATE PROCEDURE Customers @City nvarchar(30) AS SELECT * FROM Customers WHERE City = @City GO;
- هنگام اجرای SP باید مقدار مربوط به پارامتر ورودی را وارد کنید.
EXEC Customers @City = ‘Tehran’;
مثال:
در مثال پیش رو دو پارامتر ورودی تحت عنوان City, Name تعریف شده است و در ادامه کوئری در بدنه SP قرار داده شده است که در آن مقداردهی برای شهر و نام صورت گرفته و براساس مقداردهی انجام شده مشخصات کامل مشتریانی که شهر آنها تهران و نام آنها مریم است نمایش داده میشود.
CREATE PROCEDURE Customers @City nvarchar(30), @Name nvarchar(10) AS SELECT * FROM Customers WHERE City = @City AND Name= @Name GO;
- مقداردهی پارامترها هنگام اجرای SP:
EXEC Customers @City = ‘Tehran’, @Name = ‘Maryam’;