Delete Trigger, tablodan bir satır silindiğinde devreye giren tetikleyicilerdir. Silinen kayıtlar DELETED tablosunda tutulduğu için bu tablo üzerinden kontroller yapılmaktadır. Genelde birbiriyle ilişkili tablolarda kayıtlar silindiğinde kullanılır.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
CREATE TRIGGER OGRENCI_SIL ON OGRENCI AFTER DELETE AS DECLARE @OGRENCI_ID INT IF @@ROWCOUNT>0 BEGIN SELECT @OGRENCI_ID=OGRENCI_ID FROM DELETED SELECT * FROM DELETED DELETE FROM NOTLAR WHERE OGRENCI_ID=@OGRENCI_ID SELECT * FROM OGRENCI SELECT * FROM NOTLAR END |
Yukarıda OGRENCI tablosunda DELETE işlemi yapıldığında çalışacak T-SQL kodu bulunmaktadır. Eğer etkilenen satır sayısı(ROWCOUNT) 0’dan büyük ise silme işlemi başarılı olmuştur. Kayıt silindiği zaman DELETED tablosunda ki OGRENCI_ID kaydı @OGRENCI_ID değişkenine atanır. Silinen tüm kayıtlar DELETED tablosundan ekrana yazdırılır. OGRENCI_ID değeri ilişkili olan NOTLAR tablosundan kayıtlar silinerek tüm tablolar yeniden ekrana çıktısı verilir.
1 |
DELETE FROM OGRENCI WHERE OGRENCI_ID=1 |