Sid*_*war 8 sql-server deadlock
我在 MSDN 文章中发现了以下内容:
客户端选项1 和客户端选项2。设置此客户端连接的选项。这是一个位掩码,其中包含有关通常由 SET 语句(例如 SET NOCOUNT 和 SET XACTABORT)控制的选项的信息。
我在哪里可以找到有关它们的更多信息?例如,在我的死锁图中,它们具有以下值:
clientoption1="673185824" clientoption2="128056"
Run Code Online (Sandbox Code Playgroud)
我能从中推断出什么信息?
该信息虽然没有正式记录,但可以从未记录但众所周知的spt_values表中查询
-- for clientoptions1
SELECT number, CONVERT(binary(4), number, 1) AS hex, name,
CASE WHEN @@OPTIONS & number = number THEN 'ON' ELSE 'OFF' END AS value
FROM master.dbo.spt_values
WHERE type = N'D2'
AND number > 0
ORDER BY number;
-- for clientoptions2
SELECT number, CONVERT(binary(4), number, 1) AS hex, name,
CASE WHEN @@OPTIONS & number = number THEN 'ON' ELSE 'OFF' END AS value
FROM master.dbo.spt_values
WHERE type = N'SOP'
AND number > 0
ORDER BY number;
Run Code Online (Sandbox Code Playgroud)
每个值都是字段中的一个位,因此您可以使用如下方式查询它
CONCAT('SET ANSI_PADDING ', CASE WHEN clientoptions1 & 8192 > 0 THEN 'ON' ELSE 'OFF' END)
Run Code Online (Sandbox Code Playgroud)
埃里克·达林(Erik Darling)在博客中谈到了这一点。