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

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

flame33

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

flame33

Гость
#2
Вот.Только не работает. :)

<!--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

Гость
#3
Вы с синтаксисом 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

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