SQL Server’da Tek Bir Sütun için Trigger Çalıştırmak
Herkese merhaba,
Bu yazıda SQL Server’da tek bir sütun için Trigger çalıştırmak hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda tek bir sütun için Trigger çalıştırmak isteyebilirsiniz.
Aşağıdaki örnek Trigger yardımıyla siz de bu işlemi rahatlıkla yapabilirsiniz.
--DB Oluşturma
CREATE DATABASE TestDBIslemleri;
GO
--DB Seçimi
USE TestDBIslemleri;
GO
--Tablo Oluşturma
CREATE TABLE Musteriler
(
MusteriID INT PRIMARY KEY IDENTITY(1, 1),
MusteriAdi NVARCHAR(100),
Telefon NVARCHAR(20)
);
GO
--Trigger Log Tablosu
CREATE TABLE LogTablosu
(
DegisenID INT,
EskiTelefonNo NVARCHAR(20),
DegistirilmeTarihi DATETIME
);
GO
--Tabloya Veri Ekleme
INSERT INTO dbo.Musteriler
(
MusteriAdi,
Telefon
)
VALUES
( N'Yavuz Selim Kart', -- MusteriAdi - nvarchar(100)
N'05556667788' -- Telefon - nvarchar(20)
);
GO
--Telefon Alanı Değişince Çalışan Trigger
CREATE TRIGGER TelefonAlaniKontrolü
ON dbo.Musteriler
AFTER UPDATE
AS
BEGIN
IF UPDATE(Telefon)
INSERT INTO dbo.LogTablosu
(
DegisenID,
EskiTelefonNo,
DegistirilmeTarihi
)
SELECT Deleted.MusteriID,
Deleted.Telefon,
GETDATE()
FROM Deleted;
END;
--Telefon Alanını Güncelleme
UPDATE dbo.Musteriler
SET Telefon = '05359998877'
WHERE MusteriID = 1;
--Log Tablosunu Kontrol Etme
SELECT *
FROM dbo.LogTablosu;
SELECT *
FROM dbo.Musteriler
Yukarıda iki tane tablo oluşturduk. Müşteri tablosu ve Log tablosu.
Müşteri tablosunda telefon alanı değiştiğinde, müşterinin ID bilgisi ile değişen Telefon bilgisini alıp değiştirilme tarihi ile birlikte Log tablosunda tutmaktadır. Bu işlemi Trigger yapmaktadır.
Yukarıda sonucu görmektesiniz.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.