我在创建触发器时遇到错误

时间:2010-12-17 06:39:43

标签: sql triggers

我创建了一个表

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 个答案:

答案 0 :(得分:1)

尝试

create trigger ins_trig on employe before insert 

查看CREATE TRIGGER (Transact-SQL)

答案 1 :(得分:1)

您是否考虑过阅读手册?:CREATE TRIGGER

答案 2 :(得分:1)

尽管存在SQL Server错误消息,但您的代码不是SQL Server代码。

不知道这是否有效,因为T-SQL中没有“for each row”

类似的东西:

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

查看您的代码:

  • 你听说过万圣节问题吗?
  • 是公园还是津贴?
  • 主键?

答案 3 :(得分:0)

假设您正在使用SQL Server,您可能需要这样:

create trigger ins_trig ON employe FOR insert 
begin 
update employe set salary=salary-300 where parks>2000
end; 
相关问题