日期:2014-05-17  浏览次数:20465 次

.net事务
---事务
if exists(select * from sysobjects where name='usp_deletezichan')
drop proc usp_deletezichan
go
create proc usp_deletezichan
 @leibieId int
as
    begin tran --开始事务
    declare @errorSum int  
    set @errorSum=0 
    --资产
delete from zc where ZiChanLeiBieId=@leibieId
    set @errorSum+=@@ERROR
    --资产类别
delete from zclb where ZiChanLeiBieId=@leibieId
    
    set @errorSum+=@@ERROR
    if @errorSum<>0  
    begin
        print '失败,回滚事务!'
        rollback tran
    end
    else
      begin
      print '成功,提交事务!'
        commit tran
    end
go
说是消息 170,级别 15,状态 1,过程 usp_deletezichan,第 9 行
第 9 行: '+' 附近有语法错误。
消息 170,级别 15,状态 1,过程 usp_deletezichan,第 13 行
第 13 行: '+' 附近有语法错误。
创建的不对吗?
.NET 事务

------解决方案--------------------
 set @errorSum+=@@ERROR
改为
 set @errorSum=@errorSum+@@ERROR

还有失败一次就回滚了,你失败什么还继续运行?
------解决方案--------------------
set @errorSum+=@@ERROR改為set @errorSum=@errorSum+@@ERROR


SQL語法不支持“set @errorSum+=@@ERROR”這種寫法.