Category Archives: SQL Server

MS SQL Server ‘ da basit bir tetikleyici nasıl yapabiliriz?

Merhaba arkadaşlar bu yazımda belirlene bir tabloda yapılan bir değişikliği aynı anda diğer tablolarda nasıl değiştire bilirim sorunsu cevabı niteliğinde bir uygulama yazmaya çalışacağım.

Şimdi tetikleyiciler hakkında kısa bir şekilde bilgilenelim; şunu bilmez gerekir iki çeşit tetikleyici vardır.

1.      Database Triggers: bu tetikleyici çeşidi sunucu da yapılan değişiklikler için kullanır ve Server Objects seklemsin altında bulunu.

2.      Tablo Tirgger: bu tetikleyici bizimim konumuz olan tetikleyici çeşit tidir.  Tablo da yapılan değişikliklere bize yansıtan tetikleyicidir ve Tablo nesnesin altında bulunur.

Gelelim örneklerimiz yapmaya öncelik ile SampleDB isimli bir veritabanı oluşurun sonra aşağıdaki Script koduna benzer bir tablo oluşturunuz.

CREATE TABLE [dbo].[Personel]( 
[Id] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[FName] [varchar](50) NULL,
[LName] [varchar](50) NULL,
 )

 Bu tabloda yapılan işlemleri görmek içinde bir log tablosu oluşturalım

CREATE TABLE [dbo].[Logs](
[Id] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,

[Durum] [varchar](50) NULL,
)

Şimdi asıl işlemlerimize gelim ve personel tablosuna bir kayıt eklendiğinde çalışan bir tetikleyici yazalım.

CREATE TRIGGER trg_KayitEkleme
ON  Personel — hangi tabloda yapalan degisikligi denetliyecekse bura tanımlıyoruz

AFTER INSERT — trigger turunu burada belirtiyoruz
AS
BEGIN
insert into logs(durum) values(‘kayit Eklendi’) — calısıcak olan sql kodunu buraya yazıyoruz

END

 Yukarıdaki Script kodunu çalıştırdığız da ve personel tablosuna kayıt girildiğinde log tablosuna kayıt eklendi mesaj eklenecektir. Bu yaptığımız tetikleyici de yapacağınız tetikleyicilere temel düşüncesiyle herkese kolay gelsin.