定义的一个行级触发器布置怎的;老师出现日下错误,请各位高手帮忙?再次谢谢!
这是题意:定义一个AFTER行级触发器,当Teacher1表的工资(Sal)发生变化后就自动在工资变化表Sal_log中增加一条相应的记录。
出现的错误:消息 137,级别 15,状态 1,过程 Insert_Or_Update_sal1,第 9 行
必须声明标量变量 "@Sa10"。
消息 137,级别 15,状态 2,过程 Insert_Or_Update_sal1,第 10 行
必须声明标量变量 "@Sa1"。
我写的代码:CREATE TRIGGER Insert_Or_Update_sal1
ON Teacher1
FOR insert,update
AS
BEGIN
declare @Sal numeric(7,2),@Job CHAR(10),@Tno numeric(4),@Sal0 numeric(7,2),@Job0 CHAR(10),@Tno0 numeric(4)
--inserted是insert或update触发表临时表,参考下面帮助。
select @Tno=Tno,@Job=Job,@Sal=Sal from Inserted
select @Tno0=Tno,@Job0=Job,@Sa10=Sal from Deleted
if @Sal<>@Sa1
insert into Sal_log values('"+@Sal+"','"+@Job+"','"+@Tno+"')
END
[最优解释]
你一个是1:@Sa1,一个是L的小写。看到了没?
[其他解释]
@Sa1 @Sa10 数字1 和字母L 别搞错了 0 和字母o 敲错了
[其他解释]
出现的错误:消息 137,级别 15,状态 1,过程 Insert_Or_Update_sal1,第 9 行
必须声明标量变量 "@Sa10"。消息 137,级别 15,状态 2,过程 Insert_Or_Update_sal1,第 10 行
必须声明标量变量 "@Sa1"。
我写的代码:CREATE TRIGGER Insert_Or_Update_sal1
ON Teacher1
FOR insert,update
AS
BEGIN
declare @Sal numeric(7,2),@Job CHAR(10),@Tno numeric(4),@Sal0 numeric(7,2),@Job0 CHAR(10),@Tno0 numeric(4)
--inserted是insert或update触发表临时表,参考下面帮助。
select @Tno=Tno,@Job=Job,@Sal=Sal from Inserted
select @Tno0=Tno,@Job0=Job,@Sa10=Sal from Deleted
if @Sal<>@Sa1
insert into Sal_log values('"+@Sal+"','"+@Job+"','"+@Tno+"')
END
[其他解释]
俺知道啦,谢谢哈,下次俺一定小心!谢谢各位!嘿嘿........