Triger (päästik, trigger) – protsess, mille abil tema sisse kirjutatud tegevused automaatselt käivitatakse.
Andmebaasi ja kahe tabeli loomine linnad ja logi
Create database PosvystakTrigerid; Use PosvystakTrigerid; Create table linnad( linnID int identity(1,1) PRIMARY KEY, linnanimi varchar(15), rahvaarv int); --Tabel logi näitab admiline kuidas tabel linnad kasutatakse, --tabel logi täitab trigger Create table logi( id int identity(1,1) PRIMARY KEY, aeg DATETIME, toiming varchar(100), andmed varchar(200), kasutaja varchar(100) )
Create database PosvystakTrigerid;
Use PosvystakTrigerid;
Create table linnad(
linnID int identity(1,1) PRIMARY KEY,
linnanimi varchar(15),
rahvaarv int);
--Tabel logi näitab admiline kuidas tabel linnad kasutatakse,
--tabel logi täitab trigger
Create table logi(
id int identity(1,1) PRIMARY KEY,
aeg DATETIME,
toiming varchar(100),
andmed varchar(200),
kasutaja varchar(100)
)
--INSERT TRIGGER
CREATE TRIGGER LinnaLIsamine
on linnad
for insert
as
insert into logi(aeg, toiming, andmed, kasutaja)
select
getdate(),
system_user,
'linn on lisatud',
inserted.linnanimi
from inserted
--trigeri tegevuse kontroll
Insert into linnad(linnanimi, rahvaarv)
values ('Tallinn', 650000);
select * from linnad;
select * from logi;
Go
Alter TRIGGER [dbo].[LinnaLIsamine]
on [dbo].[linnad]
for insert
as
insert into logi(aeg, toiming, andmed, kasutaja)
select
getdate(),
system_user,
'linn on lisatud',
inserted.linnanimi
from inserted
--delete trigger
CREATE TRIGGER LinnaKustutamine
on linnad
for delete
as
insert into logi(aeg, toiming, andmed, kasutaja)
select
getdate(),
system_user,
'linn on kustutatud',
deleted.linnanimi
from deleted
--kontroll
delete from linnad where linnID=2;
select * from linnad;
select * from logi;
--Update triger
CREATE TRIGGER LinnaUuendamine
on linnad
for update
as
insert into logi(aeg, toiming, andmed, kasutaja)
select
getdate(),
system_user,
'linn on uuendatud',
concat ('vana andmed: ', deleted.linnanimi, ', ', deleted.rahvaarv, ' ||| uued andmed: ', inserted.linnanimi, ', ', inserted.rahvaarv)
from deleted
inner join inserted
on deleted.linnID=inserted.linnID
--kontroll
update linnad set rahvaarv=245364
where linnID=1;
select * from linnad;
select * from logi;




XAMPP






