--table, mida automaatselt täitab triger
Create table logi(
id int primary key identity(1,1),
tegevus varchar(25),
kasutaja varchar(25),
aeg datetime,
andmet text)
--tabel ,millega töötab kasutaja
create table puud(
puuid int primary key identity(1,1),
puuNimi varchar(25),
pikkus int,
aasta int)
insert into puud (puuNimi,pikkus,aasta) values ('tamm', 20, 20);
create trigger puuKustutamine
on puud
for insert
as
insert into logi(kasutaja, tegevus, aeg, andmet)
select
SYSTEM_USER,
'puu on kustutatud',
GETDATE(),
concat (deleted.puuNimi,',' ,deleted.pikkus,',' ,deleted.aasta)
from deleted;
--kontroll
insert into puud(puuNimi)
values ('käsk');
select * from puud;
select * from logi;
drop trigger puulisamine
delete from puud where puuid=1;
--triger, mis jälgib tabelis uuendamine
create trigger puuUuendamine
on puud
for insert
as
insert into logi(kasutaja, tegevus, aeg, andmet)
select
SYSTEM_USER,
'puu on uuendatud',
GETDATE(),
concat (
'vana puu info',',' ,deleted.puuNimi,',' ,deleted.pikkus,',' ,deleted.aasta,
'uus puu info',',' ,inserted.puuNimi,',' ,inserted.pikkus,',' ,inserted.aasta
)
from deleted inner join inserted
on deleted.puuid=inserted.puuid;
--kontroll
insert into puud(puuNimi)
values ('käsk');
select * from puud;
select * from logi;
drop trigger puulisamine
update puud set pikkus=25555, aasta=1900
where puuid=2
from deleted inner join inserted
on deleted.puuid=inserted.puuid