Triggers

Andmebaasinimi: raamatukogu
tabelinimi: raamatud
Loo tabel raamatud (
raamatID INT PRIMARY KEY,
pealkiri VARCHAR(100),
autor VARCHAR(100),
aasta INT
);
Trigerid:
Triggeri nimi: InsertRaamat
Tegevus:
Kui lisatakse uus raamat, salvestatakse logisse info
Triggeri nimi: UpdateRaamat
Tegevus:
Kui raamatu saadavust muudetakse, salvestatakse muudatus logisse
Triggeri nimi: DeleteRaamat
Tegevus:
Kui raamat kustutatakse, lisatakse selle kohta kirje logisse
Kasutaja: RaamatukoguHR
Saab SELECT, INSERT ja UPDATE tabelis raamatud
Ei saa ligi tabelile logi

CREATE TABLE raamatud (
raamatID INT PRIMARY KEY,
pealkiri VARCHAR(50),
autor VARCHAR(50),
aasta INT,
);

create table logi (
logID int identity(1,1) primary key,
kuupaev datetime default getdate(),
andmed VARCHAR(50),
kasutaja VARCHAR(50)
);

CREATE TRIGGER insertRaamat
ON raamatud
AFTER INSERT AS BEGIN
INSERT INTO logi (andmed, kasutaja)
VALUES (‘Lisat raamat’, ‘user’);
END;

INSERT INTO raamatud (raamatID, pealkiri, autor, aasta)
VALUES (1, ‘Garri Potter’, ‘Kto to to tam’, 1988);

CREATE TRIGGER updateRaamat
ON raamatud
AFTER UPDATE AS
BEGIN INSERT INTO logi (andmed, kasutaja)
VALUES (‘muudeti raamat’, ‘user’);
END;

UPDATE raamatud SET aasta = 1999 WHERE raamatID = 1;

CREATE TRIGGER deleteRaamat
ON raamatud
AFTER DELETE AS BEGIN
INSERT INTO logi (andmed, kasutaja)
VALUES (‘kustutati raamat’, ‘user’);
END;

DELETE FROM raamatud
WHERE raamatID = 1;

CREATE LOGIN raamatukoguHR
WITH PASSWORD = ‘Evgenii123456789’;
CREATE USER raamatukoguHR FOR LOGIN RaamatukoguHR;
GRANT SELECT, INSERT, UPDATE ON raamatud TO RaamatukoguHR;
DENY SELECT, INSERT, UPDATE, DELETE ON logi TO RaamatukoguHR;