Trigger’lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir. Çalışma mantığı, C#’daki event ile aynıdır.
Öncelikle trigger’ları ikiye ayıralım: DDL ve DML trigger’lar. DML ve DDL konusunu bu yazımızda detaylıca göz atmak isterseniz buraya tıklayın.
Bu dersimizde DML trigger üzerinde işlemler yapacağız. DML Trigger’ları da kendi içinde AFTER(veya FOR) ve INSTEAD OF olmak üzere ikiye ayrılırlar. (AFTER ve FOR aynı anlamdadır)
AFTER : Yazdığımız trigger ‘after delete’ şeklindeyse, o tablo üzerinde data silindikten sonra bu trigger devreye girer. Bu trigger’lar tetiklendiğinde işlem gerçekleşmiş demektir.
INSTEAD OF : Yazdığımız trigger ‘instead of delete’ şeklindeyse, o tablo üzerindeki kayıt silme işlemi yerine, bu trigger devreye girecektir. Bu trigger’lar tetiklendiğinde işlem gerçekleşmemiş demektir.
Asıl işlenilen Trigger’ların konu başlıklarına göre ayırırsak şöyle olur.
- Insert Trigger (ilgili tabloda ekleme işlemi olduğu anda)
- Delete Trigger (ilgili tabloda silme işlemi olduğu anda)
- Update Trigger (ilgili tabloda güncelleme işlemi olduğu anda)
Trigger Oluşturma
CREATE TRIGGER trigger_adi ON tablo_adi AFTER veya INSTEAD OF (INSERT veya UPDATE veya DELETE) AS Sql ifadeler
Trigger enable/disable Yapma
disable trigger trigger_adı On tablo_adı enable trigger trigger_adı On tablo_adı
Trigger silme
drop trigger trigger_adı
Son olarak trigger’larımızı değiştirmek istedik veya trigger’larımızın nerede saklandığını merak ettik. Bunun için hangi tablo için trigger oluşturmuşsanız o tablonun altında Triggers klasörünün altında bulabilirsiniz.
Bir sonraki yazımızda Trigger konusuna devam edeceğiz.
1 yorum
php yazılımcı · Ekim 4, 2016 4:07 pm tarihinde
Uzun süredir aradığım içerikdi teşekkür ederim