Главная / Основы 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". Разработать триггер для удаления работы, причем при попытке удаления единственной работы, выходящей из данного начального события, отменить удаление, заменив в удаляемой работе конечное событие на сток (т.е. на конечное событие с максимальным номером).

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

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

вопрос

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

DECLARE @e INT,@n INT, @m INT SELECT @n=номер, @e=нач_соб FROM deleted SELECT @m=MAX(кон_соб) FROM Граф WHERE номер<>@n IF NOT EXISTS(SELECT *       FROM Граф       WHERE номер<>@n AND нач_соб=@e )    UPDATE Граф SET кон_соб=@m WHERE номер=@n ELSE    DELETE FROM Граф WHERE номер=@n
DECLARE @e INT,@n INT, @m INT SELECT @n=номер, @e=нач_соб FROM deleted SELECT @m=MAX(кон_соб) FROM Граф WHERE номер<>@n IF NOT EXISTS(SELECT *       FROM Граф       WHERE нач_соб=@e )    UPDATE Граф SET кон_соб=@m WHERE номер=@n ELSE    DELETE FROM Граф WHERE номер=@n
DECLARE @e INT,@n INT, @m INT SELECT @n=номер, @e=нач_соб FROM deleted SELECT @m=MAX(кон_соб) FROM Граф IF NOT EXISTS(SELECT *       FROM Граф       WHERE номер<>@n AND нач_соб=@e )    UPDATE Граф SET кон_соб=@m WHERE номер=@n ELSE    DELETE FROM Граф WHERE номер=@n
DECLARE @e INT,@n INT, @m INT SELECT @n=номер, @e=нач_соб FROM deleted SELECT @m=MAX(кон_соб) FROM Граф WHERE номер<>@n IF NOT EXISTS(SELECT *       FROM Граф       WHERE номер<>@n AND нач_соб=@e )    UPDATE Граф SET кон_соб=@m WHERE нач_соб=@e ELSE    DELETE FROM Граф WHERE нач_соб=@e
Сложность вопроса
87
Сложность курса: Основы SQL
60
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Я завалил сессию, за что я не увидел данный сайт с ответами с тестами intuit до сессии
29 дек 2019
Аноним
Кто находит вот эти тесты интуит? Это же изи
07 фев 2017
Оставить комментарий
Другие ответы на вопросы из темы базы данных интуит.