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