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

Тема в разделе "SQL", создана пользователем flame33, 10 янв 2010.

  1. flame33

    flame33 Гость

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

    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]
     
  3. flame33

    flame33 Гость

    Я переделал немного, помогите пожалуйста разобраться почему не работает...
    <!--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]
     
  4. Aleksey

    Aleksey Гость

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

Поделиться этой страницей