SQL Trigger (Tetikleyici) Kullanımı

Merhabalar;

T-SQL üzerine gitmeye devam ediyoruz.
Bugün ki konumuz TRIGGER kullanımı.

Sql de veri tutarlıgını sağlamak ve işlemleri otomatikleştirmek amacıyla kullanılan bir yapıdır Trigger.
Kelime anlamı Tetikleyici olan Trigger adına yakışır aynı güzellikde hareket etmektedir ataması yapılan tablodaki hareketleri takip ederek otomatik olarak çalışır.

Triggerler aslında Procudurelerin daha da fonksiyonelleştirilmiş halidir.
Ataması yapılan tabloda INSERT,DELETE,UPDATE olmak
üzere 3 farklı trigger kullanılabilir. SELECT işleminde kayıtlarda değişiklik olmadıgı için çalışmaz. Ayrıca Create, Alter, Drop işlemlerinde de çalışmaz.Bunların dışında View,Temp_table ler de de Trigger kullanılamaz.
Önemli husus daha var Triggerlere dışardan Parametre yollanamaz.


Tabloların maruz kaldıkları işlemlere göre trigerler geçici tablolar oluştururlar bunlar DELETE işlemi için DELETED, INSERT işlemi için INSERTED dir. Bunlar çalışma anında oluşturulur ve işlem biter bitmez silinir. Daha sonra oluşmanız münkün değildir. Burda UPDATE değinilmedigini biliyorum UPDATED diye bi tablomuz yok. Updateleri yakalamak için hem DELETED hemde INSERTED tablosundan faydalanacagız onun için ayrıca ögner yazacagım.

Aşagıda ki Trigerimizde STOK ve STOK2 adında 2 tablomuz var. Şuan için pek mantıklı bir işlemiş gibi görünsede STOK tablosundan sildigimiz kayıtları bir yerde saklama geregi duyabiliriz ve örnekler çogaltılabilir. İşde Trigerimizde bu amaca hizmet etmekte.



ALTER TRIGGER DENEME_TRIGGER --Trigerimiz tanımladık
ON STOK --hangi tabloda çalışacak

FOR DELETE
--hangi işlem için (FOR INSERT,DELETE,UPDATE aynı anda olabilir)AS

INSERT INTO STOK2 (KODU,ADI,BIRIMREF) SELECT KODU,ADI,BIRIMREF FROM DELETED

Giriş seviyesi için sanırım bu örnek yeterli daha sonra farklı örneklerle detaya inecegiz.

Şimdilik hoşcakalın...

Yorum Gönder