全局变量@@ERROR
@@ERROR只能判断当前一条T-SQL语句执行是否有错,为了判断 事务中所有T-SQL语句 是否有错,我们需要对错误 进行累计;
例:SET @errorSum=@errorSum+@@ERROR
BEGIN TRANSACTION
/*--定义变量,用于累计事务执行过程中的错误--*/
DECLARE @errorSum INT
SET @errorSum=0 --初始化为0,即无错误
/*--转账:张三的账户少1000元,李四的账户多1000元*/
UPDATE bank SET currentMoney=currentMoney-1000
WHERE customerName=‘张三‘
SET @errorSum=@errorSum+@@error
UPDATE bank SET currentMoney=currentMoney+1000
WHERE customerName=‘李四‘
SET @errorSum=@errorSum+@@error --累计是否有错误
If @errorSum>0
Begin
rollback transaction
select ‘失败’
End
Else
Begin
commit transaction
select ‘成功’
End
欢迎加入.net技术交流群