谁@@ OPTIONS和sp_configure提供不同的输出?

时间:2011-08-19 11:01:22

标签: sql-server-2008

当我右键单击“对象资源管理器”中的“服务器名称”并选择“属性 - >连接”时,我可以看到“默认连接选项”中没有勾选任何内容。此外,我可以看到当我运行sp_configure 'user options'(高级选项)时,config_value为0.与此同时,当我执行“SELECT @@OPTIONS”时,我可以看到该值为5496.结果证明是真的因为已启用的选项实际上正在运行。

问题是:为什么我在SMSS和sp_configure中有误导性信息,为什么它与@@OPTIONS值不同BOL saying

  

用户选项中的位位置与@@OPTIONS中的位位置相同。每个连接都有自己的@@OPTIONS函数,表示配置环境。登录到Microsoft SQL Server时,用户会收到一个默认环境,该环境将当前用户选项值分配给@@OPTIONS

1 个答案:

答案 0 :(得分:2)

"user options"作为服务器级别设置(我的粗体)

  

用户选项选项允许您更改SET选项的默认值(如果服务器的默认设置不合适)。 用户可以使用SET语句覆盖这些默认值。

现在,检查SSMS中的连接选项,然后运行SQL事件探查器。您会注意到SSMS(和其他客户端)发出了许多设置@@ OPTIONS。

的SET命令

所以没有选项在服务器级别设置(你看到的是零)。 SSMS将为您设置它们,与SQLOLEDB,SQLNCLI,ODBC,DB-Lib等驱动程序相同。

SET QUOTED_IDENTIFIER的示例:

  

SQL Server Native Client ODBC驱动程序和SQL Server的SQL Server Native Client OLE DB提供程序在连接时自动将QUOTED_IDENTIFIER设置为ON。这可以在ODBC数据源,ODBC连接属性或OLE DB连接属性中配置。对于来自DB-Library应用程序的连接,SET QUOTED_IDENTIFIER的默认值为OFF。