SQL Serveri trigerid kahe seotud tabeli põhjal

Insert trigger

create trigger linnaLisamine
on linnad
for insert
as insert into logi(kasutaja, aeg, toiming, andmed)
select user, getdate(), 'linn on lisatud', concat(l.linnanimi, ', ', m.maakond)
from linnad l
inner join maakond m 
on m.maakondID=l.maakondID

--kontrollimiseks
insert into linnad(linnanimi, rahvaarv, maakondID)
values ('Tallinn', 436863, 1);

select * from linnad;
select * from logi;

Delete trigger

create trigger linnaKustutamine
on linnad
for delete
as insert into logi(kasutaja, aeg, toiming, andmed)
select user, getdate(), 'linn on kustutatud', concat(deleted.linnanimi, ', ', m.maakond)
from deleted
inner join maakond m 
on deleted.maakondID=m.maakondID

--kontroll
delete from linnad 
where linnID=1;

select * from linnad;
select * from logi;

Update trigger

create trigger linnaUuendamine
on linnad
for update
as 
insert into logi(kasutaja, aeg, toiming, andmed)
select user, getdate(), 'linn on kustutatud', concat('Vanad andmed : ', deleted.linnanimi, ', ', m1.maakond,
'Uuendanud andmed : ', inserted.linnanimi, ', ', m2.maakond)
from deleted
inner join inserted on deleted.linnID=inserted.linnID
inner join maakond m1 on deleted.maakondID=m1.maakondID
inner join maakond m2 on inserted.maakondID=m2.maakondID;
update linnad set linnanimi='Tallinn-Väike', maakondID=2
where linnID=2;

select * from linnad;