stored Procedures چیست ؟
مجموعه ای از دستورات (Query) مربوط به SQL میباشد که به عنوان یک واحد با یکدیگر Compile می شوند .
Stored Procedure می تواند شامل چندین دستور باشد , مانند دستورات Select , INSERT , UPDATE , DELETE
فواید استفاده از Stored Procedure :
استفاده از Store Procedure زمان Compile را در Overhead کاهش میدهد , همچنین در جلوگیری از دستورات مخرب ( SQL Injection) ما را یاری می کند .
دیگر فواید Stored Procedure :
1 - یکبار آن را ایجاد کرده و به دفعات متعدد می توانیم از آن استفاده کنیم
2 - کاهش ترافیک (حجم دستورات)
3 - می تواند قسمتی ویژه از دستورات را به کاربری خاص واگزار کند .
4 - Stored Procedure را می توان به راحتی در قسمتی معین تغییر داد بدون تغییر هیچ دستوری در نرم افزار
5 - براحتی در Stored Procedure می توانیم از Transaction استفاده کنیم .
نحوه ایجاد Stored Procedure :
تصویری که در ادامه قرار دارد نحوه ایجاد Store Procedure را شرح می دهد و همانطور که در تصویر مشاهده میکنید , کلمه کلیدی CREATE نیز برای ایجاد Stored Procedure استفاده شده است .
نمونه :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE GetEmployeeDetails
@EmployeeID int = 0
AS
BEGIN
SET NOCOUNT ON;
SELECT FirstName, LastName, BirthDate, City, Country
FROM Employees WHERE EmployeeID=@EmployeeID
END
GO
|
تغییر دادن یا ویرایش Stored Procedure :
در ادامه نحوه تغییر دستورات Stored procedure را می توانید مشاهده کنید .همانطور که در اتصویر مشاهده میکنید برای این عمل از کلمه کلیدی ALTER استفاده کنیم .
کد نمونه جهت تغییر دستور Stored Procedure :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE GetEmployeeDetails
@EmployeeID int = 0
AS
BEGIN
SET NOCOUNT ON;
SELECT FirstName, LastName, BirthDate, City, Country
FROM Employees WHERE EmployeeID=@EmployeeID
END
GO
|
دستور مربوط به Drop یا Delete در Stored Procedure :
توصویر زیر عملیات Drop مربوط به Stored Procedure را نمایش می دهد .همانطور که در تصویر مشاهده میکنید از کلمه کلیدی DROP استفاده شده است .
نمونه کد مربوط به Drop :
1
|
DROP PROCEDURE GetEmployeeDetails
|