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…

create trigger trg_yazarMesaj -- trigger adı
on yazar -- kullanılcağı tablo adı
after insert -- insert işleminde kullanılacak
as
begin
select 'yazar başarıyla eklendi'
-- yazar insert yapılınca ekrana
-- verilecek olan mesaj
end

insert into yazar values ('DenemeYazar')
--yazar tablosuna yazar ekledik ve
-- trigger oto. olarak çalıştı.