Bir INSERT, UPDATE veya DELETE işlemi bir tabloya uygulandığında bu tablo üzerinde ,
sırasıyla bir Instead Of INSERT, Instead Of UPDATE veya Instead Of DELETE trigger
var ise bu işlem tablo üzerinde gerçekleşmez. Onun yerine trigger içinde yazılı kod çalışır.
Örnek olarak Instead Of DELETE trigger yazalım.
Örneğe geçmeden önce Urunler adında bir tablomuz olduğunu düşünelim ve biz bu tabloya daha sonradan isDeleted diye veri tipi bit (bool) olan bir alan ekleyelim.ve Allow Null alanındaki işareti kaldıralım ki her ürün için mutlaka değer girilmesini sağlayalım.Ayrıca bu yeni oluşturduğumuz isDeleted alanının Properties ‘ten DefaultValueOrBinding kısmını 0 yapalım.yani false.(Bu bize her eklenen ürünün isDeleted alanının false olarak işaretlenmesini sağlayacak.)Daha sonra ürün silinmeye çalışıldığında bu alanı Instead Of DELETE trigger sayesinde 1 yani true yapacağız.Ürünlerimizi gösterirken ise C# ve sql kodlarımız ile isDeleted alanı false olan ürünleri kullanıcılara göstermiş oalcağız ki silinmiş oaln ürünler kullanıcılara gösterilmesin.
create trigger triggerSilmeGuncelle on Urunler instead of delete as update Urunler set isDeleted=1 where UrunId=(Select UrunId from deleted) |