ELSE
SET @retry = -1;
-- 输出错误消息
EXECUTE usp_MyErrorLog;
-- 会话中包含无法提交的事务
-- XACT_STATE将返回 -1
IF XACT_STATE() <> 0
ROLLBACK TRANSACTION;
END CATCH;
END; -- 结束WHILE循环
下面是会话1中返回的消息,表示两行都已经被更新。
(1 行受影响)
(1 行受影响)
下面是会话2中返回的消息,会话2被作为了死锁牺牲品。
(1 行受影响) -- 由于死锁,会话2事务中只成功更新1行,这时会发生回滚操作
错误 1205, 严重级别 13, 状态 51, 行18 -- 由存储过程usp_MyErrorLog输出的错误消息
事务(进程 ID52)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。 -- SQL Server的提示
(1 行受影响) -- 本行和下行消息是重新尝试更新后得到的提示消息
(1 行受影响)