Create database
create database triger2tabelid;
Create tabelid “Linnad + Logi+ Makoond”
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 varchar(200)
)
CREATE TABLE maakond(
maakondID int Primary KEY identity(1,1),
maakond varchar(100) UNIQUE);
INSERT INTO + SELECT
INSERT INTO maakond(maakond)
VALUES ('Harjumaa');
INSERT INTO maakond(maakond)
VALUES ('Pärnumaa');
SELECT * FROM maakond
Seoste loomine
LTER TABLE linnad ADD maakondID int;
ALTER TABLE linnad ADD CONSTRAINT fk_maakond
FOREIGN KEY (maakondID) References maakond(maakondID)
Create TRIGGER Insert
CREATE TRIGGER linnaLisamine
ON linnad
FOR INSERT
AS
INSERT INTO logi(kasutaja, aeg, toiming, andmed)
SELECT USER, GETDATE(), 'linn in lisatud',
CONCAT(l.linnanimi, ', ', m.maakond)
From linnad l
Inner join maakond m
ON m.maakondID=l.maakondID
INSERT INTO + Select
kontroll
INSERT INTO linnad(linnanimi, rahvaarv, maakondID)
Values ('Tallin', 436863, 1);
SELECT * FROM linnad;
SELECT * FROM logi;
TRIGGER Kustamine
CREATE TRIGGER linnaKustamine
ON linnad
FOR DELETE
AS
INSERT INTO logi(kasutaja, aeg, toiming, andmed)
SELECT USER, GETDATE(), 'linn on kustatud',
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
CREATE TRIGGER linnaUuendamine
ON linnad
FOR UPDATE
AS
INSERT INTO logi(kasutaja, aeg, toiming, andmed)
SELECT USER, GETDATE(), 'linn on uuendatud',
CONCAT(
'vanad andmed -', deleted.linnanimi, ', ', m1.maakond,
'uuendatud 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 deleted.maakondID=m2.maakondID
–kontroll
UPDATE linnad SET linnanimi='Tallin-Väike' , maakondID=2
WHERE linnID=2;
SELECT * FROM linnad;