【问题标题】:Why or when would you set SET XACT_ABORT to OFF?为什么或何时将 SET XACT_ABORT 设置为 OFF?
【发布时间】:2020-03-04 00:27:18
【问题描述】:

我知道XACT_ABORT 是什么。有很多关于为什么将其设置为 on 的信息。我的问题是为什么有人将其设置为off?事务的重点是要么全部完成,要么什么都不做。那么为什么有人会将其设置为off?为什么 MS 甚至选择 off 作为默认值很奇怪(触发器的默认值是 on,我知道)。

【问题讨论】:

  • 由于历史原因,存在许多功能。为什么字符串连接和加法运算都使用“+”运算符?为什么存在隐式转换?但我建议你阅读 Erland 对error handling 的讨论。默认情况下它是关闭的 - 人们通常不会故意将其关闭 AFAIK。

标签: sql-server tsql


【解决方案1】:

经过一番挖掘,我只能想到一个正当的理由来解释你为什么会这样做。那就是您希望事务继续处理而不管标记的任何错误。可能是您想稍后处理错误,而不是让整个事务回滚。

在某些情况下,数据修改语句不需要 XACT_ABORT,但要求与偏好不同。

来源:MSDN

【讨论】:

    猜你喜欢
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    相关资源
    最近更新 更多