主程序是这么写的:if update(chk_sure) 
BEGIN
  SELECT @zssums=zssums FROM inserted
  SELECT @s_sums=a.s_sums,@cy=s_sums-@zssums FROM J_Merchant a,d_quota b WHERE MerchantId=get_mchid 
                  IF @cy<0
                   begin
  rollback  transaction  
  return
end 
END
功能就是如果表MerchantId s_sums中的数值小于表d_quota zssums,则回滚事务

解决方案 »

  1.   

    以我的经验,触发器中强烈不建议使用rollback, commit,try catch等错误处理机制。
      

  2.   


    你这里仅有rollback tran
    没有与bagin tran 配对,以后出问题很难检查。
    在触发器里,一般都不会用事务
      

  3.   


    你这里仅有rollback tran
    没有与bagin tran 配对,以后出问题很难检查。
    在触发器里,一般都不会用事务
    那如果要实现 表MerchantId s_sums中的数值小于表d_quota zssums,在系统里里会提示应该怎么写好呢?
      

  4.   

    就不知道你这个实现什么,最好不要有混滚在触发器中,如果存在这样的情况 请用insetead of