Bir tetikleyici bir tabloya bağlı olarak bir takım işlemler yapan özel bir saklı yordamdır. Bu yazımızda sadece Ardı Sıra Tetikleyici (After Trigger) ve Yerine Tetikleyici (Instead Of Triggers) adı verilen tetikleyicileri anlatacağız.
Konu İçerigi:
1-Trigger Oluşturma ve Kullanımı
2-Trigger Çalışma Mantığı
- Eklenen Değeri Toplama
- Silinen Değeri Çıkarma
1-Trigger Oluşturma ve Kullanımı
Bir DELETE tetikleyici yazalım:
create trigger tg_ogrencisil --(triggere isim verdik)
on ogrenci_bilgi --(üzerinde işlem yaptıgımız tablo ismi)
after delete
as
begin
select 'ogrenci silindi' --yazdırmak istedigimiz metin
end
delete from ogrenci_bilgi where ogrenciID=4 --ogrenciID si 4 olan kaydı sil...
İki adet şu şekilde tablo oluşturalım
1.Tablomuz
Burada işimiz borç kolonuyla ilgili borç kolonundaki değerleri şu kod ile toplayalım
select sum(borc) from ogrenci_bilgi
ve toplam değer 46300
2.Tablomuzu oluşturalım tek kolondan ibaret olsun
ve içerisine toplam değerimizi yazalım
Tablolarımızı oluşturduk ve ilk tablomuza bir kayıt ekledigimiz zaman girilen borç değerini ikinci tabloya yansıtmamız için trigger kullanmalıyız
İlk tablomuza yukarıdaki bir kaydı ekledik ve borç değeri '10000' girdim
şu şekilde trigger oluşturuyoruz
create trigger ogrenciborcdurumutriggeri
on ogrenci_bilgi
after insert
as
begin
declare @borcDegiskeni int --Değişken belirledik
select @borcDegiskeni=borc from inserted
update borctablosu set toplamborcKolonu=toplamborcKolonu+@borcDegiskeni
end
Oluşturulan ikinci tabloya 10000 değerini eklemiş olduk
Ve şimdi sildigimiz bir kaydın çıkarılmasını istiyorsak nasıl yapmalıyız ?
aynı şekilde trigger oluşturacağız,
bu sefer insert yerine delete kullanacagız mantık aynı bu kodla beraber 1.tablomuzdan sildiğimiz bir değer ikinci tablodan da otomatik olarak silinecektir.
create trigger borcsilmeTriggeri
on ogrenci_bilgi
after delete
as
begin
declare @silDeger int
select @sildeger=borc from deleted
update borctablosu set toplamborckolonu=toplamborckolonu-@silDeger
end
Yorum Gönder