17 Ocak 2017 Salı

Trigger’lar Nasıl Çalışır?





Trigger’ı tetikleyen bir olayla karşılaşıldığında işlem ile trigger ikisi birlikte bir transaction bloğu olarak ele alınır.
Trigger’lar çalıştığı zaman INSERTED ve DELETED tablolarını kullanırlar. Bu tabloların her ikisi de ana tabloyla yani trigger’ın tetiklediği tabloyla eşdeğer alanlara sahiptir.
Bu tablolar mantıksal tablo şeklinde RAM’de bulunurlar. Gerçek tabloya bir kayıt eklendiği zaman trigger çalışırsa bu kayıt aynı zamanda Inserted tablosuna da eklenir. İstenildiğinde bu tablodaki kayıtlara erişilebilmektedir.

Yani trigger, kendisini çağıran işlemi onaylamak anlamında hiçbir işlem yapmayabilir yada ROLLBACK ile geçersiz kılınabilmektedir.


Tablodan bir kayıt silindiğinde, silinen kayıt DELETED tablosunda saklanır.
UPDATE işlemi ise, DELETE ve hemen ardından yapılmış olan bir INSERT işlemi olarak ele alınır.
Bir kayıt UPDATE edildiğinde orijinal kayıt DELETED tablosuna eklenir.
Değişen kayıtta INSERTED tablosuna eklenir.