SQL Server中批处理和事务之间在处理错误方面的区别

时间:2014-07-10 10:33:14

标签: sql-server sql-server-2012

我很难理解错误如何影响批次和/或交易的完成。

例如:

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语句引发运行时错误,则终止并回滚整个事务。

如果它只是包含事务失败,为什么永远不会达到第二个交易?

0 个答案:

没有答案