【问题标题】:Transaction is not performed although commit at end?尽管最后提交,但未执行事务?
【发布时间】:2018-06-03 02:02:16
【问题描述】:

我有一个简单的问题。当我用BEGIN TRAN 开始一个事务时,在中间我写了一些语句,最后写了COMMIT TRAN,如果一个语句失败会发生什么?如果@@ERROR <> 0,事务是否仍会被提交,我需要在每条语句后检查?如果我在结尾写ROLLBACK TRAN 会发生什么?当所有语句都正常工作时,事务是否也会回滚?我有点困惑:/

【问题讨论】:

  • 如果您没有任何 GO 语句 - 它被视为语句批处理,并且批处理中任何语句的失败都将终止并回滚整个批处理。
  • 请发布您的代码。事务无法提交的原因有几个。
  • 您可以先阅读documentation

标签: sql tsql


【解决方案1】:

如果你使用 COMMIT TRAN 你的查询只有在没有错误的情况下才会执行,而 ROLLBACK TRAN 用于检查查询是否正常工作,即使查询没有问题,它也肯定会回滚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    相关资源
    最近更新 更多