我对表Rep_D35写了一个触发器,为什么我在数据库里添加记录的时候老是报错,触发器如下:CREATE TRIGGER t_Ins_RepD35 ON Rep_D35
FOR INSERT
AS
--定义变量SQL Server 或Sybase 以@开头定义变量
Declare @ls_msg varchar(255),
@li_rowdeleted int
--给@li_rowdeleted赋值
Select @li_rowdeleted = count(*) from Rep_D36
Update Rep_D36 Set Rep_D36.库存数量=Rep_D36.库存数量-InSerted.数量
From Rep_D36,InSerted
Where Rep_D36.品名=InSerted.品名
--通过系统变量@@error和@@rowcoount来判断程序是否出错
If @@error <> 0
Begin
Select @ls_msg = '更新Rep_D36数据时出错(可能Rep_D35与Rep_D36是否匹配).'
Goto fail_
End
--错误处理
fail_:
RollBack Transaction
RaisError 99999 @ls_msg
Return
FOR INSERT
AS
--定义变量SQL Server 或Sybase 以@开头定义变量
Declare @ls_msg varchar(255),
@li_rowdeleted int
--给@li_rowdeleted赋值
Select @li_rowdeleted = count(*) from Rep_D36
Update Rep_D36 Set Rep_D36.库存数量=Rep_D36.库存数量-InSerted.数量
From Rep_D36,InSerted
Where Rep_D36.品名=InSerted.品名
--通过系统变量@@error和@@rowcoount来判断程序是否出错
If @@error <> 0
Begin
Select @ls_msg = '更新Rep_D36数据时出错(可能Rep_D35与Rep_D36是否匹配).'
Goto fail_
End
--错误处理
fail_:
RollBack Transaction
RaisError 99999 @ls_msg
Return
If @@error <> 0
Begin
Select @ls_msg = '更新Rep_D36数据时出错(可能Rep_D35与Rep_D36是否匹配).'
Goto fail_
End
else
begin
return
end
--错误处理
fail_:
RollBack Transaction
RaisError 99999 @ls_msg
Return