اذهب الي المحتوي
أوفيسنا

المشغلات أو الزنادات أو القادحات أو الـ Trigger


الردود الموصى بها

المشغلات أو الزنادات أو القادحات أو الـ Trigger :


كل هذه الأسماء لشيء واحد وبمعنى واحد ، ولكن تنوعت الأسماء تبعاً للاختلاف في التعريب .

* مفاهيم الـ Trigger :

- يعمل على الجداول فقط .
- يبدأ عمله آلياً عند حدوث أحد الحالات التالية :
عند إدراج سجل Insert
عند تعديل سجل Update
عند حذف سجل Delete
- يستخدم لغة T-SQL
- يطبق تعليمات T-SQL الموجودة بداخله ، معتمداً على السجل الحالي الذي سوف (يُدرج/يُعدل/يُحذف)

* جسم الـ Trigger :

Create Trigger Table_2_Trigger1 
On dbo.Table_2 
For /* Insert, Update, Delete */ 
As 
            /* If Update (column_name) ...*/
* الشرح : - تنشأ العبارة Create Trigger قادحاً جديداً - تحدد الكلمة On اسم الجدول الذي يتم فيه تشغيل القادح . - تحدد العبارة For متى سيتم تشغيل القادح ( عند الإدراج ، عند التحديث ، عند الحذف) - يأتي بعد العبارة As جمل T-SQL التي سيتم تنفيذها . * الفائدة من الـ Trigger : فوائده لا تعد ولا تحصى في طليعتها : 1- مراقبة العمليات التي تجري على جدول معين . 2- تطبيق نظم عمل على حركات الجدول . 3- صيانة قاعدة البيانات . مثلاً ، من وجود سجلات أبناء ليس لها آباء ، فيتم حذف سجلات الأبناء عند حذف سجل الأب . * استخدام Trigger : سأذكر ما يحضرني من الاستخدامات ، ولعل كل واحد من الإخوة القراء لديه استخدامات شتى لأعمال شتى : - معرفة المستخدم الذي قام بـ (الإدراج/التعديل/الحذف) وتخزينه في جدول آخر مثلاً باسم (الكاشف) ، والوقت والتاريخ . - عدم السماح بإضافة سجل لم يحمل قيمة محددة في حقل محدد . - عدم السماح بحذف سجل محدد يحمل قيمة محددة . * كيف يعرف الـ Trigger الصف الذي سيـ(يُضاف/يُحدّث/يُحذف) : يقوم الـ Trigger بالاحتفاظ بالسجل الحالي مؤقتاً ، فيحتوي هذا السجل المؤقت عند الإدراج على القيمة التي أنت على وشك إدراجها ، وعند التحديث والحذف على القيمة الأصلية وبالمثال يتضح : - لتحديد قيمة الحقل aa من السجل الذي سيُدرج أو يُحدّث :
select @a=aa from Inserted
- لتحديد قيمة الحقل aa من السجل الذي سيُحذف :
select @a=aa from Deleted
* عبارات الـ Trigger : - العبارة WITH ENCRYPTION ، اختيارية ، وتسمح بإخفاء الـ Trigger ، فيمنع المستخدمين من قراءته . * يجب عليك التعرف على لغة T-SQL من أجل التعامل مع الـ Trigger . مثال : لدينا جدولان : 1- الجدول الذي سيعمل سيشتغل عليه الـ Trigger وهو باسم Table_1 ومن ضمن حقوله حقل القيمة باسم FieldValueTable1 2- جدول باسم table_2 نقوم باستخدامه لتخزين اسم المستخدم الذي قام بالعملية والوقت والتاريخ والقيمة ، وبه الحقول التالية : - txtUser= اسم المستخدم . - DateAndTime = الوقت والتاريخ . - fieldValueNew = القيمة التي أدرجت في حال الإدراج . سننشئ الآن الـ Trigger :
Create Trigger "إدراج" 
On dbo.Table_1 
For insert 
As 
declare @fieldValueNew char(5) 
select @fieldValueNew=FieldValueTable1 from inserted 
insert into table_3 
                        (fieldValueNew, 
                        txtUser, 
                        DateAndTime) 
             values 
                        (@fieldValueNew, 
                        user, 
                        getdate())


- "إدراج" هو اسم الـ Trigger .
- العبارة Declare تعلن عن متغير .
- الرمز @ يصاحب المتغير ولابد منه .
- العبارة User تقوم بأخذ اسم المستخدم .
- العبارة GetDate تقوم بأخذ الوقت والتاريخ الحالي على جهاز السيرفر .

هذا مثال عند الإدراج .

------------

يتبع >>>>

رابط هذا التعليق
شارك

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information