تعريف الاجراءات المخزنة :
هي جمل SQL تسمح لك بعمل اجراءات على قاعدة البيانات بصورة متكررة , حيث يمكنك عمل اجراء واحدة مرة واحدة ثم تعيد استخدامه اكثر من مرة في برنامجك الذي تعمل علية , وهذا يجعل العملية بالنسبة لك مريحة كثيرا لا سيما في حالة وجود اخطاء وتريد معالجتها كما انها تجعل دخول البرنامج الى قاعدة البيانات بطريقة سلسة وبكفاءة عالية .الفكرة الاساسية للإجراءات المخزنة موحدة في جميع قواعد البيانات لكن الطريقة التي تطبق فيها قواعد البيانات الاجراءات المخزنة تختلف , ولذلك فإن استدعاء الاجراءات المخزنة يتم بواسطة تعبيرات تعتمد على قاعدة البيانات كما يلي :
- في قاعدة البيانات Oracle و DB2 يستخدم التعبير CALL .
- في قواعد بيانات SQL Server و Access يستخدم التعبير EXECUTE او EXEC .
ملاحظة قواعد بيانات اوراكل تدعم ايضا التعبير EXECUTE .
انشاء اجراء مخزن في Oracle :
التعبير الذي يقوم بإنشاء اجراء مخزن في اوراكل يشبه ذلك الذي في SQL Server والمطابق للمعيار ANSI وهو كما يلي :
CREATE [OR REPLACE] PROCEDURE sp_name (parameter_list)
AS
BEGIN
Sp_body;
END;
في الصيغة السابقة نلاحظ وجود التعبير OR REPLACE الذي يحدد عند اضافته امكانية لإعادة تعريف اجراء مخزن في حالة وجوده مسبقاُ, كذلك من الاختلافات هو عدم كتابة الاشارة @ قبل اسماء المتغيرات او المعاملات, كذلك ضرورة تعريف المعاملات او المتغيرات سواء دخل او خرج او دخل\خرج وهذا مالم نحدده في الصيغة المستخدمة في SQL Server .
مثال : اذا اردنا مثلا انشاء اجراء مخزن يقوم بتعديل قيمة الحقل Status من الجدول Students بحيث يسند معامل الاجراء لهذا الحقل في حالة كانت علامة الطالب اقل من العلامه الادنى نستخدم الصيغة التالية لفعل ذلك :
CREATE OR REPLACE PROCEDURE updateStatus
(minMark IN INT, myStatus IN varchar)
AS
BEGIN
Update Students SET Status = myStatus where Mark < minMark;
END;
انشاء اجراء مخزن في MySQL :
في النسخ التي قبل 5.0.3 لم تكن قواعد البيانات MySQL تدعم الاجراءات المخزنة ولكن من بعد تلك النسخة تم ادخال دعم الاجراءات المخزنة اليها ولكي يتم انشاء اجراء مخزن فيها تستخدم الصيغة التالية :
CREATE PROCEDURE sp_name (parameter_list)
BEGIN
query_body;
END;
مثال : اذا اردنا مثلا اجراء مخزن يقوم بإعادة عدد سجلات جدول وليكن Mytable ثم يتم وضع القيمة في متغير خرج وليكن اسمة myCount نستخدم الصيغة التالية:
CREATE PROCEDURE getCount (OUT myCount INT)
BEGIN
SELECT Count (*) Into myCount form myTable;
END;
انشاء اجراء مخزن في قواعد بيانات DB2 :
قواعد بيانات DB2 تدعم الاجراءات المخزنة ولكنك لن تستطيع تنفيذها مباشرة من خلال تعليمة SQL بل ستحتاج الى انشاء وترجمة نص الاجراء بصورة منفصلة كما ستحتاج الى تثبيت Microsoft Visual C++ لإتمام عملية الترجمة , لن ندخل في تفاصيل هذا الامر بل سنذكر هنا الصيغة المستخدمة وهي لا تختلف كثيرا عن بقية قواعد البيانات الاخرى اذ ان الصيغة المستخدمة هي كما يلي:
CREATE PROCEDURE sp_name (parameter_list)
block_name: BEGIN
sp_body;
END block_name;
مثلا لو اردنا انشاء اجراء مخزن يقوم بإدراج اسم طالب جديد ورقمة في جدول الطلاب سنكتب الصيغة كما يلي :
CREATE PROCEDURE
insertStudent (mystudentID INT, mystudentName varchar(50))
Label1: BEGIN
Insert Into Students (studentID, studentName)
Values(myStudentID, mystudentName)
END Label1;
انشاء اجراء مخزن في Ms Access :
لا تدعم اكسس الاجراءات المخزنة ولكنها تسمح لك بإنشاء استعلام مخزن بإستخدام التعبير Create Procedure كما يمكنك استعمال اسم الاستعلام المخزن الذي انشأته فمثلا لو كان لدينا الاستعلام المخزن بإسم getMyprod تستطيع كتابة التعبير كما يلي:
Select productName from getMyprod ;
كما تستطيع استدعائه بنفس الاسلوب الذي تستدعي فيه الاجراء المخزن أي يمكنك استدعائه كما يلي:
EXECUTE getMyprod;
حذف الاجراء المخزن في قواعد البيانات المختلفة
السلام عليكم ورحمة الله وبركاته نواصل معاً دروس SQL بالعربي , سنأخذ اليوم صيغة حذف الاجراء المخزن
,
في اغلب قواعد البيانات تستخدم الصيغة التالية لحذف اجراء مخزن :
DROP
PROCEDURE procedure_name;
تعديل اجراء مخزن :
لتعديل اجراء مخزن يتم استخدام التعبير ALTER PROCEDURE وهو مشابة للتعبير CREATE PROCEDURE مع فرق واحد وهو انه يعيد انشاء الاجراء
المخزن.
مثال
:
لتعديل
اجراء مخزن وليكن اسمه myStoredProcedure التي يقوم بإدراج سجل في
جدول myTable لحذف سجل من هذا الجدول سنكتب الصيغة التالية :
ALTER PROCEDURE myStoredProcedure (myRecordID INT)
AS
Delete from myTable
where ID = myRecordID;
اكتفي بهذا والى الملتقى وموضوع انشاء واستخدام المتحولات والمعاملات ضمن موضوع الاجراءات المخزنة Stored Procedures
لا تنسى مشاركة هذا مع اصدقائك دمت بألف خير
الكلمات التي اوصلتك الى هذا المنشور:
- stored procedure in sql server 2008 شرح
- ماهو stored procedure
- stored procedure شرح
- stored procedure in sql server شرح
- معنى كلمة بروسيجر
- شرح trigger في sql
- stored procedure in sql شرح
إرسال تعليق
لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر