Сейчас ваша корзина пуста!
Trigerid: Kahe seotud tabelite põhjal
create database trigerTARpv23
use trigerTARpv23;
Create table linnad(
linnID int identity(1,1) PRIMARY KEY,
linnanimi varchar(15),
rahvaarv int);
Create table logi(
id int identity(1,1) PRIMARY KEY,
aeg DATETIME,
toiming varchar(100),
andmed text,
kasutaja varchar(100)
)
CREATE TABLE maakond(
maakondID int Primary KEY identity(1,1),
maakond varchar(100) UNIQUE);
INSERT INTO maakond(maakond)
VALUES ('Harjumaa');
INSERT INTO maakond(maakond)
VALUES ('Pärnumaa');
SELECT * FROM maakond
ALTER TABLE linnad ADD maakondID int;
ALTER TABLE linnad ADD CONSTRAINT fk_maakond
FOREIGN KEY (maakondID) References maakond(maakondID);
create trigger linnaLisamine
on linnad
for insert
as
insert into logi(aeg,toiming,andmed,kasutaja)
select
getdate(),
'linn on lisatud',
concat(l.linnanimi,', ',m.maakond),
user
from linnad l
inner join maakond m
on m.maakondID=l.maakondID
insert into linnad(linnanimi, rahvaarv, maakondID)
values('Tallinn', 436863, 1)
SELECT * FROM linnad;
SELECT * FROM logi;
create trigger linnaKustutamine
on linnad
for Delete
as
insert into logi(aeg,toiming,andmed,kasutaja)
select
getdate(),
'linn on Kustutatud',
concat(deleted.linnanimi,', ',m.maakond),
user
from deleted
inner join maakond m
on deleted.maakondID=m.maakondID
delete from linnad
where linnID=1;
SELECT * FROM linnad;
SELECT * FROM logi;
create trigger linnaUuendamine
on linnad
for update
as
insert into logi(aeg,toiming,andmed,kasutaja)
select
getdate(),
'linn on Uuendatud',
concat('Vanad andmed - ', deleted.linnanimi,', ',m1.maakond,
'; Uuendatud andmed - ', inserted.linnanimi, ', ', m2.maakond),
user
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;
SELECT * FROM logi;