- تعريف : - الـ Stored Procedure هو عباره عن مجموعه من العمليات (Transact) تخزن في قاعده البيانات كاكائن
(Object) بغرض الاستخدام المتعدد , وهو يعتبر برنامج صغير ينفذ داخل قاعده البيانات .
- يمكن تقسيم الـ Stored Procedure كالتالي :
- الوظيفة او الاستخدام (Functionality)
- بناء الجمله (Syntax)
1- التكوين :
يتكون
Stored Procedure من :
أ- الرأس header : وفيه يتم تحديد اسم الاجراء و اسماء المتغيرات (parameters)
ب- جسم الاجراء body : وفيه يتم كتابه العمليات (Transact-SQL statements)
- انشاء Stored Procedure : الان سنري طريقة بناء اجراء داخل قاعده البيانات
CREATE PROCEDURE SP_UpdataProduct
-----------------------------------------------------------------------------
أ- الرأس header : وفيه يتم تحديد اسم الاجراء و اسماء المتغيرات (parameters)
ب- جسم الاجراء body : وفيه يتم كتابه العمليات (Transact-SQL statements)
- انشاء Stored Procedure : الان سنري طريقة بناء اجراء داخل قاعده البيانات
------------------------------------------------------------
CREATE PROCEDURE <Procedure_Name>
--هنا يتم وضع المتغيرات
@Param1
@Param2
AS
BEGIN
-- هنا يتم وضع العمليات
SELECT @Param1 , @Param2
END
-----------------------------------------------------------
- مثال :
لدينا Table للمنتجات في قاعده البيانات ويحتوي علي حقول كما في الشكل التالي :
لدينا Table للمنتجات في قاعده البيانات ويحتوي علي حقول كما في الشكل التالي :
والمطلوب هو Procedure لاضافه صنف ان كان
غير موجود وتحديثه ان كان موجود .
- سيتم انشاء الاجراء كالتالي وقد اعطيته اسم SP_UpdataProduct :
--------------------------------------------------------------------------
CREATE PROCEDURE SP_UpdataProduct
@ProId nvarchar(200) ,
@ProName nvarchar(250) ,
@ProUnit nvarchar(50) ,
@ProPrice money
AS
BEGIN
--التاكد من وجود الصنف
--اذا كان الصنف موجود
If exists(Select ProId From Products Where ProId = @ProId)
Begin
-- تحديث الصنف
update Products
Set ProName = @ProName , ProUnit = @ProUnit , ProPrice = @ProPrice
Where ProId = @ProId ;
End
--اذا غير موجود
Else
Begin
-- ادخال صنف جديد
Insert into Products
(ProId , ProName ,ProUnit , ProPrice)
Values
(@ProId , @ProName , @ProUnit , @ProPrice) ;
End
End
-----------------------------------------------------------------------------
- يتم تعديل الـ Stored Procedure باستخدام كلمه Alter ثم كتابه اسم Procedure
2 - الاستخدام :
يمكن ان يستخدم الـ Stored Procedure في :
أ - ارجاع المعلومات للمتصل Return
information to the caller
ب - تعديل البيانات في قاعده البيانات Modify data in databases
جـ - تحسين اداء النظام Improve performance of the system
د - تقليل الضغط والازدحام علي الشبكه Reduce network traffic
- يوجد 4 طرق لاستقبال المعلومات من الـ Stored Procedure :
أ - ارجاع النتائج Returning result sets
ب - استخدام بارمترات المدخلات والمخرجات Input and Output parameters
جـ - استخدام القيم المرجعه (المستدعاه) Return values
د - المؤشر او الكورسر العام Global cursor
3 - الصياغه او النحو او بناء الجمله :
فيما يلي نص بناء الجمله Syntax :
-----------------------------------------------------------------------------
CREATE PROG[EDURE] schema. procedure_name [;number][{@parameter schema.data_type} [VARYING] [= default] [OUTPUT]],...n][WITH { RECOMPILE[ | ENCRYPTION| EXECUTE AS { CALLER | SELF | OWNER | 'user_name' }} ] [FOR REPLICATION] ASsql_statement [...n]
-----------------------------------------------------------------------------.