SQL Trigger
Insert trigger
create trigger linnalisamine
on linnad
for insert
as
insert into logi(aeg, toiming, andmed)
select getdate(), 'Linn on lisatud', inserted.linnanimi
from inserted

Delete Trigger
create trigger linnakustutamine
on linnad
for delete
as
insert into logi(aeg, toiming, andmed)
select getdate(), 'Linn on kustutatud', deleted.linnanimi
from deleted

Update Trigger
create trigger linnaUuendamine
on linnad
for update
as
insert into logi(aeg, toiming, andmed)
select getdate(), 'Linn on uuendatud',
concat(deleted.linnanimi,' uus linnanimi -', inserted.linnanimi)
from inserted inner join deleted on inserted.linnID=deleted.linnID

Ülesanne
1.Создай logitabel(id, toiming, aeg, autoAndmed) для фиксирования изменений в авторегистре.
2.Поля и данные для таблицы авторегистра продумай самостоятельно.
3.Создай триггеры для фиксирования добавления, удаления, изменения данных в таблице авторегистра, при этом данные об изменениях сохраняются в таблице logitabel.
Создаем таблицы autoregister и logitabel
create table autoregister(
autoID int identity(1,1) PRIMARY KEY,
autonumber int,
mark varchar(30),
aasta int);
Create table logitabel(
id int identity(1,1) PRIMARY KEY,
aeg DATETIME,
toiming varchar(200),
autoAndmed varchar(200)
)
Создаем trigger на добавление данных и проверяем его
create trigger autolisamine
on autoregister
for insert
as
insert into logitabel(aeg, toiming, autoAndmed)
select getdate(), 'Auto on lisatud',
concat(inserted.autonumber,', ',inserted.mark,', ',inserted.aasta)
from inserted
insert into autoregister(autonumber,mark, aasta) values(124,'toyota',2002);

Создаем trigger на удаление данных и проверяем его
create trigger autokustutamine
on autoregister
for delete
as
insert into logitabel(aeg, toiming, autoAndmed)
select getdate(), 'Auto on kustutatud',
concat(deleted.autonumber,', ',deleted.mark,', ',deleted.aasta)
from deleted
delete from autoregister where autoID=2

Создаем trigger на обновление данных и проверяем его
update autoregister set mark='honda' where autoID=3;
select * from autoregister;
select * from logitabel;
update autoregister set mark='honda' where autoID=3;
select * from autoregister;
select * from logitabel;
