إجراءات SQL المخزنة لـ SQL Server
ما هو الإجراء المخزن؟
الإجراء المخزن عبارة عن تعليمات برمجية SQL معدة يمكنك حفظها ، بحيث يمكن إعادة استخدام الكود مرارًا وتكرارًا.
لذلك إذا كان لديك استعلام SQL تكتبه مرارًا وتكرارًا ، فاحفظه كإجراء مخزن ، ثم اتصل به لتنفيذه.
يمكنك أيضًا تمرير المعلمات إلى إجراء مخزن ، بحيث يعمل الإجراء المخزن بناءً على قيمة (قيم) المعلمة التي تم تمريرها.
بناء جملة الإجراء المخزن
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
تنفيذ إجراء مخزن
EXEC procedure_name;
قاعدة بيانات تجريبية
يوجد أدناه تحديد من جدول "العملاء" في نموذج قاعدة بيانات Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
مثال على إجراء مخزن
تنشئ جملة SQL التالية إجراءً مخزنًا باسم "SelectAllCustomers" يحدد كافة السجلات من جدول "Customers":
مثال
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
قم بتنفيذ الإجراء المخزن أعلاه على النحو التالي:
مثال
EXEC SelectAllCustomers;
إجراء مخزن بمعامل واحد
تنشئ عبارة SQL التالية إجراءً مخزنًا يحدد العملاء من مدينة معينة من جدول "العملاء":
مثال
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30)
AS
SELECT * FROM Customers WHERE
City = @City
GO;
قم بتنفيذ الإجراء المخزن أعلاه على النحو التالي:
مثال
EXEC SelectAllCustomers @City = 'London';
إجراء مخزن بمعلمات متعددة
من السهل جدًا إعداد معلمات متعددة. ما عليك سوى سرد كل معلمة ونوع البيانات مفصولة بفاصلة كما هو موضح أدناه.
تنشئ عبارة SQL التالية إجراءً مخزنًا يحدد العملاء من مدينة معينة برمز بريدي معين من جدول "العملاء":
مثال
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE
City = @City AND PostalCode = @PostalCode
GO;
قم بتنفيذ الإجراء المخزن أعلاه على النحو التالي:
مثال
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';