请帮我看一下这个触发器有什么问题?我调试了一下,程序老是回滚,是不是@@ERRORS那里出了问题!CREATE TRIGGER t_Ins_RepD35 ON Rep_D35
FOR INSERT
AS
--定义变量SQL Server 或Sybase 以@开头定义变量
Declare @ls_msg varchar(255),
@li_rowdeleted int,
@StockQty int,
@Qty int
Select @StockQty= Rep_D36.库存数量 From Rep_D36,InSerted Where Rep_D36.品名=InSerted.品名Select @Qty=InSerted.数量 from InSerted
if @@error <> 0 Or @StockQty<@Qty
Begin
---对@ls_msg赋值
Select @ls_msg = '已没有库存,请确认!'
goto fail_
End
--给@li_rowdeleted赋值
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 --回滚事务
Return ---停止运行程序
FOR INSERT
AS
--定义变量SQL Server 或Sybase 以@开头定义变量
Declare @ls_msg varchar(255),
@li_rowdeleted int,
@StockQty int,
@Qty int
Select @StockQty= Rep_D36.库存数量 From Rep_D36,InSerted Where Rep_D36.品名=InSerted.品名Select @Qty=InSerted.数量 from InSerted
if @@error <> 0 Or @StockQty<@Qty
Begin
---对@ls_msg赋值
Select @ls_msg = '已没有库存,请确认!'
goto fail_
End
--给@li_rowdeleted赋值
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 --回滚事务
Return ---停止运行程序
FOR INSERT
AS
begin Transaction
--定义变量SQL Server 或Sybase 以@开头定义变量Declare @ls_msg varchar(255),@li_rowdeleted int,@StockQty int,@Qty intSelect @StockQty= Rep_D36.库存数量 From Rep_D36,InSerted Where Rep_D36.品名=InSerted.品名Select @Qty=InSerted.数量 from InSerted
if @@error <> 0 Or @StockQty<@Qty
Begin
---对@ls_msg赋值
Select @ls_msg = '已没有库存,请确认!'
goto fail_
End
--给@li_rowdeleted赋值
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
ELSE
Goto COMMIT_
--错误处理
fail_:
RollBack Transaction --回滚事务
Return ---停止运行程序COMMIT_:
COMMIT Transaction
Return ---停止运行程序