-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTrigger_Tetikleyiciler.sql
112 lines (79 loc) · 2.86 KB
/
Trigger_Tetikleyiciler.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
-- TETIKLEYICILER (TRIGGERLAR) -> Bizden bağımsız olarak veri eklendiğinde tetiklenir. Biz eklemeyiz veriyi insert into ile farkı budur.
use VT_ALISVERIS
select * from TblUrunler
select * from TblUrunKategori
create TRIGGER trg_TblUrunler_forInsert
ON TblUrunler
FOR insert
as
begin
select * from inserted -- "inserted" gerçekte var olmayan triggerın gövdesinde yer alan özelleşmiş bir tablodur.
end
-- Hangi tablonun altında oluşturmuşsak triggerı trigger adında bir klasör var ve orayaa ekleniyor.
insert into TblUrunler values('Dondurma', 5.25, 111, 3) -- trigger tetiklendi ve select * from inserted sorgusu çalıştı. Ekrana o geldi.
-- Bu inserted sorgusunu kendimiz çalıştıramayız hata verir trigger içinde çalışan sanal bir tablo.
-- Trigger dışında çalışamaz !!.
-- Eklenen ürünleri ayrı bir tabloda tutma
-- Audit : denetim denetleme anlamına gelmektedir.
create table TblUrunlerAudit
(
id int primary key identity(1,1),
AuditData nvarchar(100) -- değişiklik yapılan datayı gösterecek -> güncelleme, silme, ekleme
)
--oluşturup değişiklik yaptık create -> alter oldu.
alter trigger trg_TblUrunler_forInsert2
On TblUrunler
for insert
as
begin
Declare @id int
select @id = id from inserted -- inserted tablosunda yer alan TblUrunlere eklediğimiz ürünün id'sini döndürüyor.
insert into TblUrunlerAudit
values(CAST(@id as nvarchar(3)) + ' id değerine sahip yeni bir ürün' + CAST(GETDATE() as nvarchar(35)) + 'tarihinde eklendi.')
end
-- CAST fonk ile @id değişkenini nvarchar'a çevireceğimizi söyledik.
select GETDATE()
insert into TblUrunler values('Pasta', 35.25, 112, 3)
select * from TblUrunlerAudit;
create trigger trg_TblUrunler_forDelete
On TblUrunler
for delete
as
begin
Declare @id int
select @id = id from deleted -- inserted tablosunda yer alan TblUrunlere eklediğimiz ürünün id'sini döndürüyor.
insert into TblUrunlerAudit values(CAST(@id as nvarchar(3)) + ' id değerine sahip yeni bir ürün' + CAST(GETDATE() as nvarchar(35)) + 'tarihinde silindi.')
end
delete from TblUrunler where id=3;
select * from TblUrunlerAudit;
--------------------------------------------------------------
-- Transaction SQL (T-SQL) --> Mssql
-- Oracle (PL-SQL)
-- Döngüler ve logic işlemler için t-sql, p-sql kullanılıyor.
select * from TblUrunler
Declare @sayi int
select @sayi=count(*) from TblUrunler
if @sayi > 1
BEGIN --diğer programlama dillerindeki süslü parantez.
print 'Tabloda kayıtlar vardır.'
END
else
BEGIN
print 'Tabloda kayıt bulunmamaktadır.'
END
Declare @sayi int
select @sayi=count(*) from TblUrunler
while @sayi >= 1
BEGIN
print @sayi
set @sayi = @sayi-1
END
if MONTH(GETDATE()) in (9)
begin
print 'Eylül ayındayız'
end
else
begin
print 'Eylül ayında değiliz.'
end
--Kaynakça : sqlservereğitimleri, javapoint.com