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