السبت، 5 يوليو 2014

Stored Procedure

Stored Procedure
تعريف ال Stored Procedure هو مجموعة من الأوامر المتكررة التي يتم كتابتها وحفظها للرجوع إليها عند الحاجة لتنفيذ ما بها من جمل و أوامر

شكل جملة Stored Procedure:

CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
       <@Param1, sysname, @p1>
       <@Param2, sysname, @p2>
AS
BEGIN
       SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END

يبدأ تعريف ال Parameter باستخدام الرمز @, لا يمكن للParameter  أن تكون بنفس الأسم.
المثال التالي يوضح كيفية إنشاء Stored Procedure وإضافة ال Parameter.

جدول tblEmployee


إنشاء Stored Procedure باسم spGetEmployeeByGender.
CREATE PROCEDURE spGetEmployeeByGender
@Gender NVARCHAR(6)
AS
BEGIN
    SELECT  EmployeeID ,
            Name ,
            Gender
    FROM    tblEmployee
    WHERE   Gender = @Gender
END

طريقة تشيغل ال Stored Procedure للحصول علي البيانات.
EXECUTE Stored_PROCEDURE_Name Parameter_Name

الكلمة Execute ثم يتبعها اسم ال Stored Procedure ثم اسم ال Parameter.

مثال:
EXECUTE spGetEmployeeByGender 'Male'



طريقة أخرى لتنفيذ جمل ال Stored Procedure.

Right Click علي اسم ال Stored  ثم اختيار  Execute Stored Procedure. تظهر الشاشة نقوم بكتابة القيمة التي نريد اما اسم ال Parameter, ثم OK.




مثال أخر تم تعديل ال Stored Procedure باستخدام الكلمة Alter و تم إضافة Parameter  جديد باسم @DepartmentID.

ALTER PROCEDURE [dbo].[spGetEmployeeByGender]
@Gender NVARCHAR(6),
@DepartmentID int

AS
BEGIN
    SELECT  EmployeeID ,
            Name ,
            Gender,
                     DepartmentID
    FROM    tblEmployee
    WHERE   Gender = @Gender
       AND DepartmentID = @DepartmentID
END


تشغيل:
EXECUTE spGetEmployeeByGender 'Male',1
تم إضافة قيمة ال Parameter بعد الفصلة Comma.





sp_helptext (Transact-SQL)
يمكن استخدام sp_helptext لعرض محتويات ال Stored Procedure .
مثال:
تم كتابة sp_helptext ثم يتبعها باسم ال Stored Procedure.
sp_helptext spGetEmployeeByGender

نلاحظ ظهور جميع جمل ال Stored Procedure


لحذف Stored Procedure:
DROP PROCEDURE spGetEmployeeByGender
ممكن الحذف باحد الطرق.
DROP PROC spGetEmployeeByGender


تشفير:
يمكن تشفيل ال Stored Procedure باستخدام الأمر WITH ENCRYPTION كالتالي:

Alter PROCEDURE [dbo].[spGetEmployeeByGender]
@Gender NVARCHAR(6),
@DepartmentID int
WITH ENCRYPTION
AS
BEGIN
    SELECT  EmployeeID ,
            Name ,
            Gender,
                     DepartmentID
    FROM    tblEmployee
    WHERE   Gender = @Gender
       AND DepartmentID = @DepartmentID
END
سوف نلاحظ تم تغير Icon ال Stored وتم وضع قفل Lock.


بعد التشفير:
بعد التشفير لن نتمكن من التعديل في جمل أو اسطر ال Stored Procedure أو حتى الأطلاع على الجمل المكتوبة, او حتى إنشاء ملف Script منه.








ليست هناك تعليقات:

إرسال تعليق

يسعدني إرسال تعليقاتكم وأسئلتكم واقتراحاتكم