You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

读取SQL Server的IMPLICIT_TRANSACTIONS值:仅位掩码方式?SSMS有对话框吗?

关于查看SQL Server 2012中IMPLICIT_TRANSACTIONS设置的解答

1. 位掩码操作不是唯一的查看方式

除了你提到的位掩码查询,还有几种更直观的方法:

  • 使用DBCC USEROPTIONS命令:执行这个命令后,会返回当前连接的所有会话级设置,其中就包含implicit_transactions的键值对,直接就能看到是ON还是OFF。示例:
    DBCC USEROPTIONS;
    
  • 查询动态管理视图sys.dm_exec_sessions:通过过滤当前会话ID(@@SPID),可以查看会话的options列,不过这里还是需要位运算来提取对应值,其实不如DBCC USEROPTIONS直接。示例:
    SELECT 
        CASE WHEN (options & 2) = 2 THEN 'ON' ELSE 'OFF' END AS IMPLICIT_TRANSACTIONS
    FROM sys.dm_exec_sessions 
    WHERE session_id = @@SPID;
    

2. SSMS 2016确实有对话框可以查看设置

你可以通过两种路径查看:

  • 查看SSMS默认连接设置:点击顶部菜单栏的「工具」→「选项」,在弹出的窗口中依次展开「查询执行」→「SQL Server」→「高级」,在列表里找到「SET IMPLICIT_TRANSACTIONS」,就能看到它的默认状态(这个是新建连接时会使用的设置)。
  • 查看当前查询窗口的设置:打开目标查询窗口后,点击顶部菜单栏的「查询」→「查询选项」,同样在「高级」标签页里找到「SET IMPLICIT_TRANSACTIONS」,这里显示的是当前窗口的会话设置。

需要注意的是:对话框里的设置是SSMS层面的配置,如果是已经运行中的会话,它的设置可能和默认不同,这种情况下还是用SQL命令(比如DBCC USEROPTIONS)查看更准确。

内容的提问来源于stack exchange,提问作者samus

火山引擎 最新活动