Şehirler tablosunda bir tane şehrin durumunu güncellediğimizde o şehire ait tüm ilçelerin durumunu güncelleyelim.
Şehirler Tablosu
CREATE TABLE tblSehirler ( sehir_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1), sehir_adi VARCHAR(100), plaka VARCHAR(3), eklenme_tarihi DATETIME NOT NULL DEFAULT (getdate()), durum TINYINT DEFAULT 0 )
Tablomuz oluştu. Şimdi birkaç tane şehir verisi ekleyelim.
Şehirler Tablosuna Ait Kayıtlar
INSERT INTO tblSehirler (sehir_adi, plaka, durum) VALUES ('ADANA', '01', 1) INSERT INTO tblSehirler (sehir_adi, plaka, durum) VALUES ('ADIYAMAN', '02', 1) INSERT INTO tblSehirler (sehir_adi, plaka, durum) VALUES ('AFYON', '03', 1) INSERT INTO tblSehirler (sehir_adi, plaka, durum) VALUES ('DENEME', '04', 1)
Şehirler tablosu ve ona ait kayıtlar eklendi. Şimdi de ilçeler tablosunu oluşturalım
tblSehirler Tablosu
İlçeler Tablosu
CREATE TABLE tblIlceler ( ilce_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1), sehir_ID INT, ilce_adi VARCHAR(100), eklenme_tarihi DATETIME NOT NULL DEFAULT (getdate()), durum TINYINT DEFAULT 0 )
İlçeler Tablosuna Ait Kayıtlar
INSERT INTO tblIlceler (sehir_ID, ilce_adi, durum) VALUES (1, 'ADANA İLÇE 1', 1) INSERT INTO tblIlceler (sehir_ID, ilce_adi, durum) VALUES (1, 'ADANA İLÇE 2', 1) INSERT INTO tblIlceler (sehir_ID, ilce_adi, durum) VALUES (2, 'ADIYAMAN İLÇE 1', 1) INSERT INTO tblIlceler (sehir_ID, ilce_adi, durum) VALUES (3, 'AFYON İLÇE 1', 1) INSERT INTO tblIlceler (sehir_ID, ilce_adi, durum) VALUES (4, 'DENEME İLÇE 1', 1) INSERT INTO tblIlceler (sehir_ID, ilce_adi, durum) VALUES (4, 'DENEME İLÇE 2', 1) INSERT INTO tblIlceler (sehir_ID, ilce_adi, durum) VALUES (4, 'DENEME İLÇE 3', 1)
İlçeler tablosu ve ona ait kayıtlar eklendi. Şimdi de trigger yazalım.
tblIlceler Tablosu
Şehirler tablosundaki durum sütununun değerine göre ilçeler tablosundaki durum sütununun değerinin değişmesini sağlayan trigger yazalım.
Trigger
CREATE TRIGGER trgSehirler_Update ON tblSehirler AFTER UPDATE AS BEGIN UPDATE tblIlceler SET durum = i.durum FROM tblIlceler INNER JOIN INSERTED i ON tblIlceler.sehir_ID = i.sehir_ID END
Şimdi de yazdığımız triggerın testini yapalım. Mesela tblSehirler tablosundaki sehir_ID=4 nolu kaydın durum sütununu güncelleyelim. Ardından tblIlceler tablosunda sehir_ID=4 olan kayıtların durum sütununu kontrol edelim.
Şehirler Tablosu Güncelleme
UPDATE tblSehirler SET durum=0 WHERE sehir_ID=4
tblSehirler Tablosu Güncelleme Sonrası
Şehirler tablosunda güncelleme yaptık. Sırada ise İlçeler tablosunda güncellenen kayıtları gösterelim.
tblIlceler Tablosu Güncelleme Sonrası