• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Добавление триггера

  • Автор темы flame33
  • Дата начала
F

flame33

Есть 2 таблицы в SQL Server 2000.
_______.jpg
Нужно добавить триггер, чтобы при добавлении новой записи в таблицу Seat соблюдалось правило:
если ID_Sector.Sector=ID_Sector.Seat,
то Initial_Row.Sector<=Number_Row.Seat <=Finite_Row.Sector.
Пожалуйста помогите с реализацией.
 
F

flame33

Не видно реализации.
Вот.Только не работает. :)

<!--shcode--><pre><code class='sql'>CREATE TRIGGER INSROW
ON Seat FOR INSERT
AS
IF @@ROWCOUNT=1
BEGIN
IF NOT EXISTS (SELECT *
FROM inserted
WHERE Initial_Row.Sector<=Number_Row.Seat<=Finite_Row.Sector
AND ID_Sector.Sector=ID_Sector.Seat
BEGIN
ROLLBACK TRAN
PRINT
'Номер ряда не соответствует выбранному сектору зала!'
END
END[/CODE]
 
F

flame33

Вы с синтаксисом sql не знакомы, надо начать с него.
Я переделал немного, помогите пожалуйста разобраться почему не работает...
<!--shcode--><pre><code class='sql'>CREATE TRIGGER INSROW
ON Seat FOR INSERT
AS
IF @@ROWCOUNT=1
BEGIN
IF NOT EXISTS (SELECT *
FROM inserted, Sector
WHERE inserted.ID_Sector=Sector.ID_Sector AND
Sector.Initial_Row<=inserted.Number_Seat AND inserted.Number_Seat<=Sector.Finite_Row)

BEGIN
ROLLBACK TRAN
PRINT
'Номер ряда не соответствует выбранному сектору зала!'
END
END[/CODE]
 
A

Aleksey

Не работает потому, что такое работать не может.
Неправильная конструкция команды CREATE TRIGGER, неправильный оператор IF, неправильный SELECT внутри, и, наконец, - ROLLBACK (команды управления транзакциями в триггерах недопустимы).
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!