· 9 years ago · Dec 08, 2016, 08:00 AM
1create trigger isbn_sil
2on kitaplar
3after delete
4as
5declare @isbn int
6if @@ROWCOUNT >0
7 begin
8 select @isbn = isbn from delete
9 delete from emanet where @isbn = isbn
10 delete from kitap_kategori where @isbn=isbn
11 delete from kitap_yazar where @isbn = isbn
12 end
13
14 ////// 10034 isbn numaralı kitap yoksa uyarı verecek olmadığına dair //////
15 select * from kitaplar
16
17 delete from kitaplar
18 where isbn= 10034
19
20
21____________________________________________________________________________________
22--------//Tablo üzerinde güncelleme işlemi ve uyarılar
23create trigger isbn_güncelle on kitaplar
24on kitaplar
25after update
26
27as
28declare @eski_isbn int
29declare @yeni_isbn int
30
31if @@GROWCOUNT > 0
32begin
33 select @eski_isbn =isbn from deleted
34 select @yeni_isbn = isbn from inserted
35 update emanet_isbn set = @yeni_isbn
36 where isbn = @eski_isbn
37 update kitap_kategori set = @yeni_isbn
38 where isbn = @eski_isbn
39 update kitap_yazar set = @yeni_isbn
40 where isbn = @eski_isbn
41 end
42
43update kitaplar set isbn = 120
44where isbn = 1
45
46________________________________________________________________
47// sadece belirli sütunlarda yapmak işçin
48
49if UPDATE[isbn]
50____________________________________________________
51//instead of tetikleyicisi / işlemi tabloya yansıtmadan gerçekleştirir
52
53create trigger kitap_kontrol
54on kitap_kutuphane
55instead of insert
56as
57////sistemde tanımlı değil ise ////
58
59if not exist(select * from inserted
60inner join kitaplar on kitaplar_isbn = inserted.isbn)
61or not exists (select * from inserted
62inner join kütüphane on inserted.kut_no = kütüphane.kut_no)
63
64begin
65 print "girilen isbn numarasına ait veya girilen kütüphane numarasına ait kayıt mevcut değil"
66
67rollback
68
69end
70/////////////////tanımlı ise insert ediyoruz
71 else
72 begin
73 declare @girilen_isbn int
74 declare @girilen_kutuphane int
75 declare @girilen_miktar int
76
77 select @girilen_isbn = isbn,
78 @girilen_miktar = miktar from inserted
79
80//////// Eğer aynısı var ise güncelleme işlemi yapacak kodu yapıyoruz şimdi
81
82if exists (select * from kitap_kutuphane
83where isbn=@girilen_isbn and kut_no = @girilen_kutuphane)
84begin
85 rollback
86 update kitap_kütüphane set miktar = miktar + @girilen_miktar
87 where isbn = @girilen_isbn and kut_no + @girilen_kutuphane
88
89end
90else
91 insert into kitap_kutuphane
92 select * from inserted
93end
94
95____
96
97
98drop trigger silme_engeli on kitaplar // kitaplar tablosunda silme engeli
99drop trigger silme_engeli on all server /// bütün server üzerinde silme engeli
100
101alter tablo kitaplar
102disable trigger isbn_guncelle
103
104
105disable trigger isim_güncelle
106
107alter table kitaplar
108disable trigger all
109
110alter tablo kitaplar
111enable trigger all