SQL VE TSQL DERS 29: INSERT, DELETE, UPDATE TRIGGER

INSERT TRIGGER

Bir tabloya yeni kayıt ekledikten sonra devreye girecek işlemler için kullanılır.
Trigger oluşturulduktan sonra, yeni eklenen her kaydı Inserted tablosunda tutmaya
başlar. Bu kayıtlar gerçek tablonun yapısal bir kopyasıdır.
Bir çok durumda, yapılan işlemlerin anlık olarak otomatik loglama
ihtiyacı duyulur. Bu ihtiyacı karşılamak için trigger kullanılabilir.
Product tablosunda yapılan her veri ekleme işlemini otomatik olarak
ProductLog tablosuna kaydedelim.
Product ve ProductLog tablolarını oluşturuyoruz önce

DELETE TRIGGER

Delete triggerı tarafından Deleted isimli sözde tablo oluşturulur.
Deleted tablosu sadece trigger içerisinde kullanılabilir.
Deleted tablosu gerçek veri tablosundan bile silinmiş olan verileri
tutar. Bunun nedeni transaction sırasında geri alma işlemi gerçekleştirme
olasılığında rollback ile geri alanabilmesini sağlamaktır.

UPDATE TRIGGER
Tablo üstünde kayıtlarda güncelleme olduğunda tepki vermek üzere kodlanan triggerlardır. Insert
ve Delete triggerlar gibi kendine has sözde tabloya sahip değildir. INSERTED VE DELETED tablolarının
her ikisini de kullanır. Ana tablodaki güncellenen kayıtların kopyasını Inserted tablosu, güncellemeden
önceki hallerini ise Deleted tablosu tutar.
Product tablosunda herhangi bir sütunun değeri değiştirildiğinde ModifiedDate sütunu değerini
o anki sistem tarih ve zaman bilgisiyle değiştirelim. Güncelleme işleminde, ModifiedDate sütunu
set edilmese bile, otomatik olarak o anki güncel bilgilerle değiştirilsin.