【发布时间】:2018-06-03 02:02:16
【问题描述】:
我有一个简单的问题。当我用BEGIN TRAN 开始一个事务时,在中间我写了一些语句,最后写了COMMIT TRAN,如果一个语句失败会发生什么?如果@@ERROR <> 0,事务是否仍会被提交,我需要在每条语句后检查?如果我在结尾写ROLLBACK TRAN 会发生什么?当所有语句都正常工作时,事务是否也会回滚?我有点困惑:/
【问题讨论】:
-
如果您没有任何
GO语句 - 它被视为语句批处理,并且批处理中任何语句的失败都将终止并回滚整个批处理。 -
请发布您的代码。事务无法提交的原因有几个。
-
您可以先阅读documentation