Дана таблица со структурой, которая описывает некоторый граф:
CREATE TABLE graph(nomer INT PRIMARY KEY, --номер дуги outp INT, --номер вершины, --из которой дуга выходит inp INT) --номер вершины, --в которую дуга входит
Создать триггер, обрабатывающий удаление одной дуги, причем следует запретить удаление, если эта дуга единственная, связывающая некоторые вершины.
CREATE TRIGGER trigON graph FOR DELETE AS
Выберите операторы для продолжения текста триггера.
DECLARE @e1 INT, @e2 INT,@n INTSELECT @n=nomer, @e1=outp, @e2=inpFROM deleted IF EXISTS(SELECT * FROM graph WHERE nomer=@n AND outp<>@e1 AND inp<>@e2 )ROLLBACK TRAN
IF NOT EXISTS(SELECT * FROM graph WHERE nomer<> deleted.nomer AND outp= deleted.outp AND outp= deleted.inp)ROLLBACK TRAN
DECLARE @e1 INT, @e2 INT,@n INTSELECT @n=nomer, @e1=outp, @e2=inpFROM deletedIF NOT EXISTS(SELECT * FROM graph WHERE nomer<>@n AND outp=@e1 AND inp=@e2 )ROLLBACK TRAN(Верный ответ)
IF NOT EXISTS(SELECT * FROM graph WHERE nomer<>(SELECT nomer FROM deleted) AND outp= (SELECT outp FROM deleted) AND inp)ROLLBACK TRAN