SQL VE TSQL DERS 28: TRIGGERLAR

TRIGGER NEDİR?

Triggerlar veri yada sistemle ilgili değişimlerde otomatik olarak tetiklenen sp’lerdir.

Triggerların sp’lerden farkı dışarıdan parametre almaması,dışarıya parametre göndermemesi

ve bir kullanıcı tarafından değil, bir olay tarafından tetiklenmesidir.

Nesne Tabanlı Programlamadaki Events(Olaylar) ‘a benzerler.

Sadece Insert,Update,Delete işlemlerinden sonra devreye girebilecek şekilde programlanabilirler.

Inner Join bulunan viewlere veri ekleme, sadece triggerlar ile mümkün olabilir.

Insert,Update,Delete sorguları çalıştırıldığında, bu işlemlerin yerine yapılmak istenen farklı

işlemler de triggerlar ile gerçekleştirilebilir.

Sadece olaydan sonra değil olaydan önce de Instead of trigger olarak kullanılabilirler.

Bu triggerlar gerçek tablolar etkilenmeden önce devreye girerler.

TRIGGERLAR NASIL ÇALIŞIR?

Triggerlar transaction olarak çalışırlar. Hata ile karşılaşıldığında rollback ile
yapılan işlemler geri alınabilir.

Trigger yapısının en önemli unsurlarından biri sözde tablolardır. Sözde tablolar
INSERTED VE DELETED olmak üzere 2 adettir. Bu tablolar RAM üzerinde mantıksal olarak
bulunurlar. Gerçek veri tablosuna bir veri eklendiğinde, eklenen kayıt INSERTED tablosunada
eklenir. Tablodan bir kayıt silindiğinde de DELETED tablosunda da yer alır. Güncelleme için
UPDATED isimli bir sözde tabloya sahip değildir. Güncellenen veriler önce silinir daha sonra
eklenir. Bir kayıt güncellendiğinde orjinal kayıt DELETED tablosunda, değişen kayıt ise
INSERTED tablosunda saklanır.

Devamı için Tıkla…