Кому @@ OPTIONS и sp_configure предоставляют разные результаты? - PullRequest
2 голосов
/ 19 августа 2011

Когда я щелкаю правой кнопкой мыши Имя сервера в «Обозревателе объектов» и выбираю «Свойства-> Подключения», я вижу, что в «Параметры подключения по умолчанию» ничего не отмечено. Также я могу видеть, когда я запускаю sp_configure 'user options' (дополнительные параметры включены), что config_value равен 0. В то же время, когда я выполняю "SELECT @@OPTIONS", я вижу, что значение равно 5496. Оно оказывается истинным, поскольку включенные на самом деле работает.

Вопрос в том, почему в SMSS и sp_configure есть информация, вводящая в заблуждение, и почему она отличается от значения @@OPTIONS несмотря на то, что BOL говорит

Позиции битов в пользовательских настройках идентичны позициям в @@OPTIONS. Каждое соединение имеет собственную функцию @@OPTIONS, которая представляет среду конфигурации. При входе в Microsoft SQL Server пользователь получает среду по умолчанию, которая присваивает текущему параметру пользователя значение @@OPTIONS.

1 Ответ

2 голосов
/ 19 августа 2011

"параметры пользователя" , как говорит настройка уровня сервера (мой жирный)

Опция пользовательских опций позволяет вам изменить значения по умолчанию опций SET (если настройки сервера по умолчанию не подходят). Пользователь может переопределить эти значения по умолчанию, используя инструкцию SET.

Теперь проверьте параметры подключения в SSMS, а затем запустите SQL Profiler. Вы заметите, что SSMS (и другие клиенты) выдают много команд SET, которые устанавливают @@ OPTIONS.

Итак, опции no установлены на уровне сервера (ноль, который вы видите). SSMS установит их для вас так же, как драйверы SQLOLEDB, SQLNCLI, ODBC, DB-Lib и т. Д.

Пример для SET QUOTED_IDENTIFIER :

Драйвер ODBC для собственного клиента SQL Server и поставщик OLE DB для собственного клиента SQL Server для SQL Server автоматически устанавливают для QUOTED_IDENTIFIER значение ON при подключении. Это можно настроить в источниках данных ODBC, в атрибутах соединения ODBC или в свойствах соединения OLE DB. По умолчанию для SET QUOTED_IDENTIFIER установлено значение OFF для соединений из приложений DB-Library.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...