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.

 

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir