Вот мой код:
CREATE TRIGGER trg_Booking
ON Bookings
FOR INSERT, UPDATE
DECLARE @bef AS varchar(25)
SELECT @bef = Role
FROM Inserted, booksys.dbo.Employees
WHERE Inserted.EmployeeNo = Employees.EmployeeNo
IF NOT (@bef = 'Foreman')
BEGIN
RAISERROR ('Only a Foreman can do that!',16,1)
ROLLBACK TRANSACTION
END
Я продолжаю получать сообщение об ошибке при попытке выполнить и создать триггер; "Сообщение 156, уровень 15, состояние 1, процедура trg_booking, строка 5. Неверный синтаксис рядом с ключевым словом "DECLARE"".
Также, кажется, SQL Server не распознает объект «Вставленный»?
Я использую SQL Server 2014 и Management Studio.
inserted
будет содержать несколько строк, и значение, которое вы присваиваете@bef
, практически случайное. Кроме того, синтаксис соединения, который вы используете, был заменен в 1992 году на явный синтаксис соединения, хотя это и правильно, но очень устарело и Есть несколько веских причин не использовать его - person GarethD   schedule 16.01.2015JOIN
в Стандарт ANSI-92 SQL (более 20 лет назад), и его использование не рекомендуется. - person marc_s   schedule 16.01.2015