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 للوصول إلى القيم القديمة والجديدة.
تعليقات
إرسال تعليق