Su ostukorv on hetkel tühi!
SQL TRIGERID
SQL SERVER
triger (trigger) – protsess, mille abil tema sisse kirjatatud tegevused automaatselt käivitatakse
create database trigerTARpv23;
use trigerTARpv23;
-- loomine tabeli toode
CREATE TABLE toode (
toodeID int primary key identity(1,1),
toodeNimi varchar(60),
hind int
);
-- loome tabeli, mis täidab triger
create table logi(
id int primary key identity(1,1),
kasutaja varchar(100),
kuupaev datetime,
sisestatudAndmed TEXT
);
INSERT TRIGGER – triger, mis jälgib (отслеживает) andmete lisamine tabelisse ja teeb vastava kirja tabelis logi
CREATE TRIGGER toodeLisamine
ON toode -- tabel, mis jälgitakse
FOR INSERT
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('lisatud andmed ', inserted.toodeNimi, ', ', inserted.hind)
FROM inserted
-- kontrolli
-- kontrollimiseks lisame 'toode'
INSERT INTO toode(toodeNimi, hind) VALUES ('magus õun', 10);
SELECT * FROM toode;
SELECT * FROM logi;


Kus “triger” asub
CREATE TRIGGER toodeKustutamine
ON toode -- tabel, mis jälgitakse
FOR DELETE
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('kustutatud andmed - "', deleted.toodeNimi, '" indeks on - "', deleted.toodeID, '"')
FROM deleted
-- kontrolli
-- kontrollimiseks lisame 'toode'
DELETE FROM toode WHERE toodeID = 1;
SELECT * FROM toode;
SELECT * FROM logi;

CREATE TRIGGER toodeUuendamine
ON toode -- tabel, mis jälgitakse
FOR UPDATE
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('vanad andmed - "', deleted.toodeNimi, '", vana hind -', deleted.hind ,', indeks on - "', deleted.toodeID, '". Uued andmed - "', inserted.toodeNimi, '", uue hind - "', inserted.hind, '"')
FROM deleted INNER JOIN inserted
ON deleted.toodeID = inserted.toodeID
-- kontrolli
-- kontrollimiseks lisame 'toode'
UPDATE toode SET hind = 12 WHERE toodeID = 2;
SELECT * FROM toode;
SELECT * FROM logi;
XAMPP
Päästik – trigger


