я получаю ошибку при создании триггера - PullRequest
0 голосов
/ 17 декабря 2010

Я создаю таблицу

create table employe(Eid int,Ename varchar(20),City varchar(20),Designation varchar(20), Salary int,perks int)

Я хочу создать триггер для нее, но я получил ошибку

create trigger ins_trig before insert on employe
for each row
begin
update employe set salary=salary-300 where parks>2000;
end;

Ошибка:

Msg 102, Level 15, State 1, Procedure ins_trig, Line 1
Incorrect syntax near 'before'.

Что я делаю не так?

Ответы [ 4 ]

1 голос
/ 17 декабря 2010

Ваш код не является кодом SQL Server, несмотря на сообщение об ошибке SQL Server.

Не знаю, работает ли это, потому что в T-SQL нет "для каждой строки"

Что-то вроде:

create trigger ins_trig on employe INSTEAD OF insert
AS
begin
update employe set salary=salary-300 where parks>2000;
end;

Глядя на ваш код:

  • Вы слышали о проблеме Хэллоуина?
  • это парки или льготы?
  • первичный ключ?
1 голос
/ 17 декабря 2010

Рассматривали ли вы чтение руководства ?: CREATE TRIGGER

1 голос
/ 17 декабря 2010

Попробуйте

create trigger ins_trig on employe before insert 

Посмотрите на CREATE TRIGGER (Transact-SQL)

0 голосов
/ 17 декабря 2010

Предполагая, что вы используете SQL Server, вы, вероятно, хотите это:

create trigger ins_trig ON employe FOR insert 
begin 
update employe set salary=salary-300 where parks>2000
end; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...