SQL Server - Section1 - التعامل مع Triggers في SQL Server

التعامل مع Triggers في SQL Server

الـ Triggers هي نوع خاص من الإجراءات تُنفّذ تلقائيًا عند تنفيذ عمليات مثل INSERT، UPDATE، أو DELETE على جدول معين.

🟢 تُستخدم لتطبيق منطق معين أو فرض قيود عمل إضافية على الجداول.


✅ الصيغة العامة لإنشاء Trigger


CREATE TRIGGER trigger_name
ON table_name
AFTER INSERT | UPDATE | DELETE
AS
BEGIN
    -- SQL statements
END;

🔹 يمكنك استخدام AFTER أو INSTEAD OF حسب الحاجة.


🧪 مثال عملي: Trigger بعد عملية إدراج

لننشئ Trigger يسجل أي عملية INSERT على جدول Orders داخل جدول AuditLog:


CREATE TRIGGER trg_AfterInsert
ON Orders
AFTER INSERT
AS
BEGIN
    INSERT INTO AuditLog (ActionType, ActionDate)
    VALUES ('INSERT', GETDATE());
END;

📌 أنواع Triggers

  • AFTER Trigger: ينفّذ بعد تنفيذ العملية (INSERT/UPDATE/DELETE) بنجاح.
  • INSTEAD OF Trigger: ينفّذ بدلاً من تنفيذ العملية الأصلية.

🔧 إدارة Triggers

  • تعطيل Trigger:

DISABLE TRIGGER trg_AfterInsert ON Orders;
  • تفعيل Trigger مرة أخرى:

ENABLE TRIGGER trg_AfterInsert ON Orders;
  • حذف Trigger:

DROP TRIGGER trg_AfterInsert;

📝 ملاحظات مهمة

  • يمكن أن يتسبب Trigger في عمليات متسلسلة إذا تم تعديل جداول مرتبطة، لذا كن حذرًا من التكرار (recursion).
  • يفضل كتابة Triggers بسيطة للحفاظ على الأداء.
  • الجداول INSERTED و DELETED تُستخدم داخل Triggers للوصول إلى القيم القديمة والجديدة.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework