SQL Server’da Bir Tabloda Düzenlenme Tarihi Kolonunu Trigger ile Güncellemek
Herkese merhaba,
Bu yazıda SQL Server’da bir tabloda düzenlenme tarihi kolonunun Trigger ile nasıl güncelleneceği hakkında bilgi vermeye çalışacağım.
Örnek bir senaryo oluşturdum. Bir tablomuz var, tablomuzu oluşturuyoruz. Sonrasında Trigger yapımızı oluşturuyoruz.
Aşağıdaki kodları çalıştıralım.
--Tablo oluşturma
CREATE TABLE Kisiler
(
ID INT IDENTITY(1, 1) PRIMARY KEY,
Ad VARCHAR(50) NOT NULL,
Soyad VARCHAR(50) NOT NULL,
Olusturulma_Tarihi DATETIME NOT NULL
DEFAULT GETDATE(),
Duzenlenme_Tarihi DATETIME
);
--Trigger oluşturmak
CREATE TRIGGER TRG_DuzenlenmeKontrolu
ON Kisiler
FOR UPDATE
AS
BEGIN
UPDATE Kisiler
SET Duzenlenme_Tarihi = GETDATE()
FROM Kisiler
INNER JOIN deleted d
ON Kisiler.ID = d.ID;
END;
--Tabloyu kontrol edelim
SELECT * FROM Kisiler
Tablomuz ve Trigger yapımız oluşturuldu. Şimdi tablomuza bakalım.
Tablomuza 2 adet kayıt ekleyelim.
--Tabloya kayıt ekleme
INSERT INTO dbo.Kisiler
(
Ad,
Soyad,
Olusturulma_Tarihi,
Duzenlenme_Tarihi
)
VALUES
( 'Yavuz Selim', -- Ad - varchar(50)
'Kart', -- Soyad - varchar(50)
DEFAULT, -- Olusturulma_Tarihi - datetime
NULL -- Duzenlenme_Tarihi - datetime
),
( 'Pelin', -- Ad - varchar(50)
'Tantoğlu Kart', -- Soyad - varchar(50)
DEFAULT, -- Olusturulma_Tarihi - datetime
NULL -- Duzenlenme_Tarihi - datetime
)
Tablomuzu tekrar kontrol edelim.
Görüldüğü üzere düzenlenme tarihleri boş. Şimdi 1 numaralı ID’yi güncelleyelim.
--Şimdi tabloda düzenleme yapalım.
UPDATE dbo.Kisiler SET Ad='Hasan Ali' WHERE ID=1
--Tabloyu tekrar kontrol edelim
SELECT * FROM Kisiler
Görüldüğü üzere Yavuz Selim Kart, Hasan Ali Kart oldu ve Trigger tetiklenerek düzenlenme tarihi kolonuna düzenlenme tarihini otomatik olarak bastı. Dilerseniz bu işlemi farklı bir tabloya Insert ederek her bir düzenlenmenin kim tarafından yapıldığı bilgisini ekleyerek de gösterebilirsiniz.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.