Trigger
Trigger tetikleyici anlamına gelir bir işlem gerçekleitiğinde programın programınızı tetiklemeye veya tablolar arasındaki veri bütünlüğünü korumayı sağlar.Yeni bir triger olusturmak için:
CREATE TRIGGER /*TRIGGER ADI*/ ON /*TABLO ADI*/
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
/*SQL KODLARIMIZ*/
END
Örneğin bir PEOPLE tablomuz olsun tablomuz da ID , FNAME ve NUM kolonları olsun yeni bir veri girilince bütün verileri ekranda listeleyen bir trigger yazalım.
CREATE TRIGGER GOSTER ON PEOPLE
AFTER INSERT
AS
BEGIN
SELECT * FROM PEOPLE
END
INSERT INTO PEOPLE(FNAME,NUM) VALUES ('ABC',12345678912)

Triggerları aktif veya pasif hale getirmek için
ENABLE TRIGGER GOSTER ON PEOPLE
DISABLE TRIGGER GOSTER ON PEOPLE
Örneğin bir öğrenci devamsızlık la ilgili tablolarımız olsun
CREATE TABLE OGRENCI(
OGRENCI_ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
OGRENCI_NO INT NOT NULL,
OGRENCI_AD_SOYAD VARCHAR(50) NOT NULL)
CREATE TABLE DEVAM(
DEVAM_ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
OGRENCI_ID INT NOT NULL,
DEVAMSIZLIK INT NOT NULL)
CREATE TRIGGER EKLE ON OGRENCI
FOR INSERT
AS
BEGIN
DECLARE @OGRENCI_ID INT
SELECT @OGRENCI_ID = OGRENCI_ID FROM inserted
INSERT INTO DEVAM(OGRENCI_ID,DEVAMSIZLIK) VALUES (@OGRENCI_ID,0)
END
Burda OGRENCI tablosuna yeni bir öğrenci eklendiği zaman DEVAM tablosuna da o ogrencının ID si
ve devamsızlıgını 0 olarak kaydeder
Devamında OGRENCI tablosundan sildiğimiz bir değerin DEVAM tablosundan da silinmesini sağlayacak bir trigger yazalım
CREATE TRIGGER GOSTER_DELETE_OGRENCI ON OGRENCI
FOR DELETE
AS
BEGIN
DECLARE @SILINECEK VARCHAR(MAX)
SELECT @SILINECEK = OGRENCI_AD_SOYAD FROM deleted
DELETE FROM DEVAM WHERE OGRENCI_AD_SOYAD = @SILINECEK
SELECT * FROM deleted
SELECT * FROM DEVAM
END
Trıggerın sonunda sılınen değeri ve DEVAM tablosunu da gösterdik