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,NUMVALUES ('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
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol