Sql 我在创建触发器时出错

Sql 我在创建触发器时出错,sql,triggers,Sql,Triggers,我创建一个表 创建表employe(Eid int、Ename varchar(20)、City varchar(20)、名称varchar(20), 工资整数、津贴整数) 我想为它创建一个触发器,但出现了错误 create trigger ins_trig before insert on employe for each row begin update employe set salary=salary-300 where parks>2000; end; 错误是: Msg 102

我创建一个表

创建表employe(Eid int、Ename varchar(20)、City varchar(20)、名称varchar(20),
工资整数、津贴整数)

我想为它创建一个触发器,但出现了错误

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'. Msg 102,15级,状态1,程序启动,第1行 “before”附近的语法不正确。 我做错了什么?

试试看

create trigger ins_trig on employe before insert 
看一看

试试看

create trigger ins_trig on employe before insert 

查看一下

您考虑过阅读手册吗?:

您考虑过阅读手册吗?:

假设您使用的是SQL Server,您可能需要:

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

假设您使用的是SQL Server,您可能需要:

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

尽管出现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;
查看您的代码:

  • 你听说过万圣节的问题吗
  • 是公园还是福利
  • 主键

尽管出现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;
查看您的代码:

  • 你听说过万圣节的问题吗
  • 是公园还是福利
  • 主键

SQL Server不知道任何“插入前”触发器-仅在(操作)触发器之后或不在(操作)触发器之后…在触发器语法中包含“BERFORE”和“FOR EACH ROW”意味着您没有使用SQL Server(Oracle?Informix?),但错误消息看起来像是SQL Server错误。请澄清您使用的是哪台服务器。SQL server不知道任何“插入前”触发器-仅在(操作)触发器之后或代替(操作)触发器…在触发器语法中包含“BERFORE”和“FOR EACH ROW”意味着您没有使用SQL server(Oracle?Informix?),但错误消息看起来像是SQL server错误。请澄清您正在使用的服务器。您的触发器语句不是有效的T-SQL;SQL Server中没有“before insert”。您的触发器语句不是有效的T-SQL;SQL Server中没有“插入前”。