Professional Documents
Culture Documents
Vtys2-7 - Salin
Vtys2-7 - Salin
Sunucu Triggers
ilgili tabloya ilgili işlem veya işlemler FOR ve AFTER ayni işlemi yapar.
yapıldığında AS komutundan sonra gelecek Dolayısıyla burada FOR/AFTER veya INSTEAD OF
TSQL kodları yazılır. komutlarından biri seçilir.
Örnek1
• Aşağıdaki trigger, öğrenci tablosuna ekleme yapıldığı zaman tetiklenecek ve AS den sonraki
T-SQL kodlarını çalıştıracak.
• Trigger’lar güncelleme işlemi için UPDATED isimli bir sözde tabloya sahip değildir.
• Güncellenen veriler ilk olarak silinerek DELETE işlemi ve sonrasında tekrar eklenerek INSERT
işlemi gerçekleştirilir.
Örnek1: Kayıt Ekleme ve Silme
OGR_NO AD SOYAD
1195613046 EMİR CEM ÖRGÜÇ
3195691033 ESMA YILDIZ
2165663338 MEHMET ÇELİK
• Tabloya aşağıdaki kayıt eklenmeye çalışılırsa; bu kayıt aynı zamanda INSERTED tablosunda da
saklanır.
INSERTED
• Tablodan 1195613046 numaralı EMİR CEM ÖRGÜÇ kaydı silinmek istenirse; o zaman
DELETED tablosunda da kayıt yer alacaktır.
DELETED
DELETED
OGR_NO AD SOYAD
3195691033 ESMA YILDIZ
Tablo Düzeyinde Trigger Silme
• Tablo düzeyindeki trigger nesnesini silmek için;
DROP TRIGGER <trigger adı>
Uygulama
• stok_takip adında bir veritabanı oluşturunuz.
• Veritabanı içinde iki tablo oluşturunuz.
• urunler(urun_no, urun_adi, stok_adedi)
• satis(satis_no, urun_no)
• Ürünler tablosuna 5 kayıt giriniz.
• Satış yapıldığında (yani satış tablosuna kayıt girildiğinde), ilgili
ürünün stok adedini bir azaltan trg_sat adında trigger nesnesini
oluşturunuz.
Uygulama
CREATE DATABASE stok_takip
CREATE TABLE urunler(urun_no int primary key not null, urun_adi varchar(30),
stok_adedi int )
CREATE TABLE satis(satis_no int primary key not null, urun_no int )
Uygulama
• trg_sat adlı trigger, satis tablosuna insert yapılırken stok adedini 1 azaltmalıdır.
Uygulama
CREATE TRIGGER trg_sat trg_sat adında satis tablosunda Insert işlemi için bir
trigger oluşturur ve AS den sonraki komutlar
ON satis
tetiklenir
FOR INSERT
AS
@satilan_urun_no adında bir değişken tanımlanır
Update komutu ile ilgili ürünün adeti 1 azaltılır. Böylelikle satış tablosuna bir kayıt
eklendiğinde tetikleme başlar ve otomatik olarak ürünler tablosunda güncelleme yapılır.
Ödev
• Satış tablosunda satış adeti için adet adında bir alan ekleyin.
• Satış tablosuna girilen adet kadar, ürünler tablosundan stok azaltan trigger nesnesini yazın.
• Eğer stok satış yapılamayacak kadarsa yani stokta yeterli ürün yoksa satış işlemi iptal edilsin.
Kaynaklar
• Yazılımcılar için SQL Server 2014 ve Veritabanı Programlama, Yaşar Gözüdeli, Seçkin Yayınları
• Veritabanı İlkeleri ve Yönetim Sistemleri, Bora Aslan vd, Paradigma Akademi
Veritabanı Yönetim Sistemleri-II
Dr.Öğr.Üyesi Füsun YAVUZER ASLAN