Update Trigger, bir tablonun bir satırı üzerinde değişiklilk yapıldığında devreye giren tetikleyicilerdir. UPDATE işlemi için hem INSERTED hemde DELETED tablosu oluşturulur. Yeni değer INSERTED tablosunda, eski değer DELETED tablosudna saklanır. Birbiriyle ilişkili tablolarda kullanılabilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
CREATE TRIGGER OGRENCI_GUNCELLE ON OGRENCI AFTER UPDATE AS DECLARE @yeni_ogrenci_id INT DECLARE @eski_ogrenci_id INT IF @@ROWCOUNT>0 BEGIN SELECT @yeni_ogrenci_id=OGRENCI_ID FROM INSERTED SELECT @eski_ogrenci_id=OGRENCI_ID FROM DELETED UPDATE NOTLAR SET OGRENCI_ID=@yeni_ogrenci_id WHERE OGRENCI_ID=@eski_ogrenci_id END |
Yukarıda OGRENCI tablosunda UPDATE işlemi gerçekleştiğinde devreye giren OGRENCI_GUNCELLE trigger oluşturduk. Eski ve yeni değeri saklayan tablolar olduğu için 2 adet eski ve yeni değerlerin saklanacağı değişkenler oluşturduk. Eğer güncelleme işlemi başarılı olursa NOTLAR tablosunda bulunan OGRENCI_ID değeride değiştirilecek.
1 2 3 |
UPDATE OGRENCI SET OGRENCI_ID=1 WHERE OGRENCI_ID=10 SELECT * FROM OGRENCI SELECT * FROM NOTLAR |