Главная / Основы SQL / В таблице Граф представлен график сетевого планирования: CREATE TABLE Граф (номер INT PRIMARY KEY, --номер работы нач_соб INT, --начальное событие кон_соб INT, --конечное событие длит INT) --длительность работы В таблице, моделирующей сетевой график, кажд

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф (номер INT PRIMARY KEY, --номер работы нач_соб INT, --начальное событие кон_соб INT, --конечное событие длит INT) --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
1 2 3 4 5 6 7 8 9 101 1 1 3 4 3 2 5 5 62 4 3 4 5 5 6 6 7 75 12 3 6 2 8 5 4 7 2

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для удаления работы, причем при попытке удаления единственной работы, приводящей к данному конечному событию, отменить удаление, заменив в удаляемой работе начальное событие на исток (т.е. на начальное событие под номером 1).

CREATE TRIGGER trig_del ON Граф INSTEAD OF DELETE AS

Выберите операторы для продолжения текста триггера.

вопрос

Правильный ответ:

DECLARE @e INT,@n INT SELECT @n=номер, @e=кон_соб FROM deleted IF NOT EXISTS(SELECT * FROM Граф       WHERE номер<>@n AND кон_соб=@e )    UPDATE Граф SET нач_соб=1 WHERE номер=@n ELSE    DELETE FROM Граф WHERE номер=@n
DECLARE @e INT,@n INT SELECT @n=номер, @e=кон_соб FROM deleted IF EXISTS(SELECT * FROM Граф       WHERE номер<>@n AND кон_соб<>@e )    UPDATE Граф SET нач_соб=1 WHERE номер=@n ELSE    DELETE FROM Граф WHERE @e=кон_соб
DECLARE @e INT,@n INT SELECT @n=номер, @e=кон_соб FROM deleted IF NOT EXISTS(SELECT * FROM Граф       WHERE номер<>@n AND кон_соб=@e )    UPDATE Граф SET нач_соб=1 WHERE кон_соб=@e ELSE    DELETE FROM Граф WHERE кон_соб=@e
DECLARE @e INT,@n INT SELECT @n=номер, @e=кон_соб FROM deleted IF номер<>@n AND кон_соб=@e    UPDATE Граф SET нач_соб=1 WHERE номер=@n ELSE    DELETE FROM Граф WHERE номер=@n
Сложность вопроса
82
Сложность курса: Основы SQL
60
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Кто ищет данные ответы по интуит? Это же безумно легко
30 ноя 2018
Аноним
спасибо за ответ
27 окт 2015
Оставить комментарий
Другие ответы на вопросы из темы базы данных интуит.