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.

SQL Server'da Tek Bir Sütun için Trigger Çalıştırmak

Yukarıda sonucu görmektesiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

 

421 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!