Instead of Trigger with Asp.net

Triggerlar ile asıl yapılması gereken yerine başka bir iş yaptırmak istediğimizde instead of trigger kullanılır.

Triggerlar ile asıl yapılması gereken yerine başka bir iş yaptırmak istediğimizde instead of trigger kullanılır.

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ş olan ü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)

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Mustafa Fatma Yalçın ben..Sayfayı baya araştırdım ama C# kodunda prosedür tablo çalıştırmak gibi hiç bir bilgiye ulaşamadım..C# içinde sql kullanımıyla ilgili bazı bilgiler aktarsanız hiç fena olmaz gerçekten ;)Şimdiden teşekkür ederim..
merhaba fatma.triggerlar yapısı gereği sql server tarafında oluşturulur ve gerektiğinde çalışır.Instead of Trigger özel bir triggerdır zaten.ama genel olarak sql ve asp.net kullanımında bahsediyorsan şu makale işine yarayabilir.http://www.sanalkurs.net/veritabani-baglanti--islemleri-4408.html

Yukarı Git