SQL Server ARITHABORT设置差异

问题描述

我有一个兼容级别为130的sql Server2016。我尝试使用以下查询来查找ARITHABORT设置是否为ON?他们给出了不同的结果

参考:MSDN

查询

---Microsoft sql Server 2016 (SP1-CU8) with Compatibilty Level - 130
SELECT compatibility_level  
FROM sys.databases WHERE name = 'MyDB';  
GO  

CREATE TABLE #Sp_Result  ([name] nvarchar(35),[minimum] int,[maximum] int,[config_value] int,[run_value] int);
INSERT INTO #Sp_Result ([name],[minimum],[maximum],[config_value],[run_value])
EXEC sp_configure 'user_options';
SELECT 'ARITHABORT - ' + CASE WHEN ([config_value] & 64) = 64 THEN 'ON' ELSE 'OFF' END
FROM #Sp_Result;
    
DECLARE @Val VARCHAR(3) = 'OFF';  
IF ( (64 & @@OPTIONS) = 64 ) 
SET @Val = 'ON'; 
 
SELECT  'ARITHABORT - ' + @Val AS ARITHABORT;  

结果

compatibility_level
-------------------
130

----------------
ARITHABORT - OFF


-----------------------------------
ARITHABORT
----------------
ARITHABORT - ON

哪个结果正确?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)