【问题标题】:How to detect where SET IMPLICIT_TRANSACTIONS ON?如何检测 SET IMPLICIT_TRANSACTIONS ON 的位置?
【发布时间】:2022-12-21 22:23:22
【问题描述】:

我有一个 C++ 应用程序并运行它 SQL Server 2019

server1\db1 - 它工作正常 server1\db2 - 它工作起来很奇怪

该应用程序的工作方式不同。我在 Profiler 中检测到 db2 有

set implicit_transactions on

但是 db1 没有这个集合。

我找不到这个设置在哪里:应用程序没有这个声明。

它可以在哪里?可能是含蓄的?

【问题讨论】:

  • 你在任何地方设置“SET ANSI_DEFAULTS ON”吗?
  • “好”数据库我有 sp_WhoIsActive(来自 A.Machanic),我可以更早地运行这个过程。但据我所知,应该为此会话设置此设置。 Profiler 向我显示“set implicit_transactions on”向我的应用程序发送了 SQL:BatchStarting 。这就是应用程序无法正常运行的原因。
  • 不,我没有设置它。唯一的区别在于数据库

标签: sql-server


【解决方案1】:

您可以使用以下方法检查设置:

select case when @@Options & 2 = 0 then 'Off' else 'On' end as Implicit_Transactions_State;

参考:@@Optionsuser options

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 2021-08-23
    • 1970-01-01
    • 2023-03-14
    • 2016-07-23
    • 1970-01-01
    相关资源
    最近更新 更多