Tabelite loomine

CREATE TABLE logitabel(
	id int PRIMARY KEY identity(1,1),
	aeg datetime,
	andmed varchar(120),
	kasutaja varchar(30));
CREATE TABLE toode(
	toodeId int PRIMARY KEY identity(1,1),
	toodeNimi varchar(30),
	hind decimal(6,2));

Triger, mis jälgib andmete sisestamine “toode” tabelisse.

CREATE TRIGGER insertToode
ON toode
FOR INSERT
AS
INSERT INTO logitabel(kasutaja, aeg, andmed)
SELECT USER, GETDATE(), CONCAT('Lisatud andmed: ', inserted.toodeNimi, ' ', inserted.hind, ' Euro')
FROM inserted

Kontrollimiseks

insert into toode(toodeNimi, hind)
values ('Piim', 1.59);
insert into toode(toodeNimi, hind)
values ('Kohv', 4.99);
select * from toode;
select * from logitabel;

Triger, mis jälgib andmete kustutamine tabelist “toode”.

CREATE TRIGGER deleteToode
ON toode
FOR DELETE
AS
INSERT INTO logitabel(kasutaja, aeg, andmed)
SELECT USER, GETDATE(), CONCAT('Kustutatud andmed: ', deleted.toodeNimi, ' ', deleted.hind, ' Euro')
FROM deleted

Kontrollimiseks

select * from toode;
delete from toode 
where toodeId = 2;
select * from toode;
select * from logitabel;

Triger, mis jälgib andmete uuendamine “toode”.

CREATE TRIGGER updateToode
ON toode
FOR UPDATE
AS
INSERT INTO logitabel(kasutaja, aeg, andmed)
SELECT USER, GETDATE(), CONCAT('Vanad andmed: ', deleted.toodeNimi, ' ', deleted.hind,' Euro ----> uued andmed: ', inserted.toodeNimi, ' ', inserted.hind, ' Euro')
FROM deleted inner join inserted
ON inserted.toodeId=deleted.toodeId

Kontrollimiseks

select * from toode;
update toode set hind = 2.30
where toodeId = 1;
select * from toode;
select * from logitabel;

Kasutaja “sekretar” lisamine ja talle õiguste andmine

GRANT SELECT ON toode to sekretar; 
GRANT DELETE ON toode to sekretar; 
GRANT INSERT ON toode to sekretar; 
GRANT UPDATE ON toode to sekretar; 

Kontrollimiseks

select * from toode;
UPDATE toode set hind = 4.50
where toodeId = 1;
select * from toode;
select * from toode;
insert into toode(toodeNimi, hind)
values ('Kohv', 4.99);
select * from toode;