SQL

SQL Ders23- Trigger Kullanımı instead of

Bu konumuzda Trigger’larda instead of kullanımını göreceğiz. Şimdi Araba adında bir tablo oluşturalım.

CREATE TABLE Kitap
(
KitapID INT PRIMARY KEY IDENTITY(1,1),
KitapAdi NVARCHAR(50),
SatildiMi BIT default 1
)

Burada SatildiMi kolonunu default değerini 1 olarak atama işlemini gerçekleştirdik. Oluşturulan tablomuza birkaç kayıt girelim.

INSERT INTO Kitap(KitapAdi) VALUES('Dönüşüm')
INSERT INTO Kitap(KitapAdi) VALUES('Beyaz Prens')

Şimdi tablomuza bir göz atalım.

Gördüğümüz gibi SatildiMi kolonumuz direk olarak 1 sayısını getirdik. Şimdi de bu tablo üzerinde yapılacak bir delete işlemi için bir trigger yazalım. Yazdığımız trigger, kaydı silmeyerek, SatildiMi kolonuna 0 değerini atasın. Yani silme işlemi yerine update işlemi yapacağız.

CREATE TRIGGER TRG_PasifYap
ON Kitap
INSTEAD OF DELETE
AS
      UPDATE K SET SatildiMi=0 FROM Kitap K
      JOIN deleted D ON K.KitapID=D.KitapID

Kitap tablosundan bir kayıt silelim.

DELETE Kitap WHERE KitapID=1

Görüldüğü gibi silme işlemi gerçekleşmedi onun yerine bizim yazmış olduğumuz trigger devreye girerek update yapmak istediğimiz işlemi gerçekleştirdi.

Çok karmaşık olan Trigger konusunu sizler için 3 parça halinde sunmayı amaçladım. Umarım anlaşılmıştır.

İyi kodlamalar..

hakkımdaki her şeyi bu blogda bulabilirsin. Haydi sende bir göz gezdirmeye ne dersin?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir