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...


Trigger çalışma mantığı (Toplama)
İ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

Bu Paylaşıma Yorum Yaz

Daha yeni Daha eski