我在存储过程添加了事务 @finalAccept_No是返回值
下面这样写可以吗
set @finalAccept_No='2'
IF ( @errorSum <> 0 )
BEGIN
print 'ROLLBACK'+cast(@errorSum as varchar(50))
ROLLBACK TRAN sale_2014_12_19
END
ELSE
BEGIN
print 'commit'+cast(@errorSum as varchar(50))
commit TRAN sale_2014_12_19
END
return
或者 这样写?
IF ( @errorSum <> 0 )
BEGIN
print 'ROLLBACK'+cast(@errorSum as varchar(50))
ROLLBACK TRAN sale_2014_12_19
END
ELSE
BEGIN
print 'commit'+cast(@errorSum as varchar(50))
commit TRAN sale_2014_12_19
END
set @finalAccept_No='2'
return
两者有区别吗
就是 返回值取值放着--根据是否有错误,确定事务是提交还是回滚--*/ 前和后有区别吗?会不会导致存储过程执行失败。
------解决思路----------------------
事务递交/回滚不影响存储过程的语句执行,当然不影响变量的赋值。
------解决思路----------------------
回滚只是对数据的操作,于你变量的赋值没有关系,效果不同于RETURN