تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة --- القوادح Triggers
#1
كاتب الموضوع : BADRMEDIA


نظراً لأهمية القوادح سنتكلم عن كيفية استخدامها ببساطة دون تعقيد


أولاً ما هي Triggers ؟؟؟


القوادح هى عبارة عن مجموعة من الأوامر يتم تنفيذها كلما صدر الأمر المسبب للقادح

وتستخدم القوادح أيضاً كشروط اضافية عندما لا تستطيع تكوين CONSTRAINT على جدول معين فتكون هى البديل لذلك والقوادح مثلها مثل الاجراءات المخزنة SP من حيث الديناميكية ولكن لها تخصص اكبر والمقصود بها الأوامر



متى تنفذ القوادح

تنفيذ عند تنفيذ الأمر المرتبطة به وهى ثلاث حالات

Delete : حيث تختص هذه الجمله بالحذف.
Update : حيث تختص هذه الجمله بالتعديل.
Insert : حيث تختص هذه الجمله بالإضافة.










}}}
تم الشكر بواسطة: ابو ابراهيم , asemshahen5
#2
صيغة انشاء قادح Trigger



كود :
CREATE TRIGGER [TRIGGER NAME] ON [dbo].[Table Name]
FOR INSERT, UPDATE, DELETE
AS

TRIGGER NAME = اسم القادح المراد انشاءه

Table Name = اسم الجدول المطبق عليه القادح


مثال على تطبيق قادح على جدول عندما تعدل حقل معين لا يعدل


عندنا جدول اسمه : Class_Quant_Primary

به حقل رقمى اسمه Quant_UA


كتبت هذه القادح


كود :
CREATE TRIGGER [update_quant_prim] ON [dbo].[Class_Quant_Primary] for update as

if update (Quant_UA)

begin

print ('hello baby - u cant update !!!')

rollback transaction

end

شرح القادح اعطيت اسم للقادح

كتبت اسم الجدول المراد التنفيذ عليه

اخبرته انه عند القيام بتعديل على الحقل Quant_UA

يقوم باظهار رسالة تخبر المستخدم بعدم امكانية التعديل

وكتبت سطر التراجع عن التعديل



}}}
تم الشكر بواسطة: ابو ابراهيم , asemshahen5
#3
هنقوم بتكوين قادح الان ليلغى الاضافة

على نفس الجدول السابق

نكتب هذا القادح



كود :
CREATE TRIGGER [insert_prim] ON [dbo].[Class_Quant_Primary] for insert as

begin

print ('hello baby - u cant insert!!!')
rollback transaction
end


كل ما فى الأمر أننا غيرنا الأمر القادح من Update إلى Insert
}}}
تم الشكر بواسطة: ابو ابراهيم , asemshahen5 , asemshahen5
#4
وكذلك الأمر مع الحذف نغير الأمر فقط


هنقوم بتكوين قادح الان ليلغى الاضافة

على نفس الجدول السابق

نكتب هذا القادح




كود :
CREATE TRIGGER [Delete_prim] ON [dbo].[Class_Quant_Primary] for Delete as

begin

print ('hello baby - u cant Delete !!!')
rollback transaction
end
كل ما فى الأمر أننا غيرنا الأمر القادح من Insert إلى Delete


طبعاً لازم نغير سم القادح باسم مختلف مع كل قادح ننشأه



}}}
تم الشكر بواسطة: ابو ابراهيم , asemshahen5



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم