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