我很难理解错误如何影响批次和/或交易的完成。
例如:
BEGIN TRAN;
SELECT 1/0 AS Error;
ROLLBACK;
BEGIN TRAN;
SELECT 1/1 AS NOError;
COMMIT;
GO
即使第一笔交易失败,第二笔交易也不应该成功吗?交易不是逐个处理的吗?批次在这里扮演的角色是什么?
我正在阅读SET XACT_ABORT ON
命令,MSDN说:
当SET XACT_ABORT为ON时,如果Transact-SQL语句引发运行时错误,则终止并回滚整个事务。
如果它只是包含事务失败,为什么永远不会达到第二个交易?