Basit Trigger Örnekleri

31 Temmuz 2009

-- Kullanıcının tablo üzerinde güncelleme yaptığında
-- değişiklik tarihi kolonunun otomatik olarak
-- güncelleme yapıldığı tarihi alınmasının sağlanması
-- için yazılan update trigger örneği

Örnek Tablo kolonları:
KisiID, ZiyaretID,DegisiklikTarihi

CREATE TRIGGER trigger_Guncellendi
ON Kisiler
for UPDATE
as

declare @id int
select @id = ziyaretID  from deleted -- güncelleme için kayıt önce deleted (silinenler)
                                                          -- tablosuna gönderilir
ardından da kayıt insert edilir

UPDATE Kisiler
SET degisiklikTarihi = getdate() --güncelleme yapıldığı tarihi db ye eklemiş olduk
WHERE ziyaretID=@id



--Kullanıcının birden fazla kayıt silmesini engellemek için yazılan bir delete trigger örneği


CREATE TRIGGER trigger_Silindi --Trigger adı
ON Kisiler --İlgili Tablo
for DELETE --Oluşturulacak trigger türü
as
declare @sayi int
select @sayi = count(*) from deleted --Silme işlemi için deleted (Silinmişler)
--tablosuna
gönderilen kayıt sayısı
if @sayi>1
begin
rollback transaction
end

4 yorum:

Murat dedi ki...
Bu yorum yazar tarafından silindi.
Kemal dedi ki...

Hocam Merhaba,
Trigger Örneklerini yazarken acaba triggerde kullanılan diğer tablolarıda yazmanız mümkün mü ?

Aslı dedi ki...

Kemal bey, örneklerde aslında tek tablo var. Tablomuz Kisiler tablosu. deleted olarak adı geçen tablo ise triggerda otomatik olarak oluşturulan bir tablodur. Tetikleme esnasında silinen verinin bir kopyası deleted tablosunda saklanır.

Kemal BALABAN dedi ki...

Güzel Bilgi için teşekür ederim Aslı Hanım bir şey daha öğrenmiş oldum :)