В таблице Граф представлен график сетевого планирования:
CREATE TABLE Граф(номер INT PRIMARY KEY, --номер работы нач_соб INT, --начальное событие кон_соб INT, --конечное событие длит INT) --длительность работы
В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:
Номер | Нач_соб | Кон_соб | Длит |
---|---|---|---|
12345678910 | 1113432556 | 2434556677 | 51236285472 |
Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для вставки новой записи, причем необходимо отменить ввод, если номер конечного события оказался меньше номера начального события.
CREATE TRIGGER trig_insON Граф FOR INSERT AS
Выберите операторы для продолжения текста триггера.
IF NOT EXISTS(SELECT * FROM inserted WHERE нач_соб<=кон_соб)ROLLBACK TRAN
IF (SELECT * FROM inserted WHERE нач_соб>кон_соб)ROLLBACK TRAN
IF EXISTS(SELECT * FROM inserted WHERE нач_соб>кон_соб)ROLLBACK TRAN(Верный ответ)
IF inserted.нач_соб>inserted.кон_соб)ROLLBACK TRAN