------ ------ 1) Napíšte trigger, ktorý po smrti človeka ukončí jeho neukončený vzťah. ------ Teda, ak napr. UPDATE Osoba SET dat_smrti = '2008.3.31' WHERE id = 5; ------ => trigger: UPDATE Vztah SET do = ( SELECT dat_smrti FROM inserted ) WHERE ... ------ Poznamka: pre navrat k povodnemu stavu*) NULL dat_smrti je lepsie riadky 1/3, 2/3, 3/3 okomentovat, ba dokonca vymazat. ------ USE OsobaVztah; GO select * from vztah select * from osoba where id IN(5,6) IF OBJECT_ID('tr_Osoba', 'TR') IS NOT NULL DROP TRIGGER tr_Osoba; GO CREATE TRIGGER tr_Osoba ON Osoba AFTER UPDATE AS -- NONO deleted.dat_smrti IS NULL if UPDATE(dat_smrti) --AND (( SELECT dat_smrti FROM deleted ) IS NULL ) -- 1/3 koment pre opravu d_s --AND (( SELECT dat_smrti FROM inserted) IS NOT NULL )-- 2/3 komment pre opravu d_s - NULL begin UPDATE Vztah SET do = ( SELECT dat_smrti FROM inserted ) WHERE ( SELECT id FROM inserted) IN ( Vztah.id_on, Vztah.id_ona ) --AND do IS NULL -- 3/3 koment pre opravu d_s end GO UPDATE Osoba SET dat_smrti = '2008.3.31' WHERE id = 5; UPDATE Osoba SET dat_smrti = NULL WHERE id = 5; -- navrat k povodnemu stavu*) select * from osoba where id IN(5,6) SELECT * FROM Vztah --where id = 4;