Поделиться через


@@OPTIONS (Transact-SQL)

Возвращает сведения о текущих параметрах инструкции SET.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

@@OPTIONS

Возвращаемые типы данных

integer

Замечания

Эти параметры могут быть получены при использовании команды SET или из значения sp_configure user options. Значения сеанса, настроенные с помощью команды SET, заменяют параметры sp_configure. Многие инструменты (например, Среда Management Studio), автоматически настраивают эти параметры SET. Каждый пользователь имеет функцию @@OPTIONS, представляющую эту конфигурацию.

С помощью инструкции SET можно изменить язык и параметры обработки запроса для определенного сеанса пользователя. @@OPTIONS обнаруживает только параметры, для которых заданы значения ON или OFF.

Функция @@OPTIONS возвращает битовую матрицу параметров, преобразованную в десятичное целое число (base 10). Битовые параметры хранятся в местах, описанных в разделе Настройка параметра конфигурации сервера user options.

Для декодирования значения @@OPTIONS преобразуйте целое число, возвращенное @@OPTIONS, в двоичное, затем найдите значения в приведенной выше таблице. Например, если SELECT @@OPTIONS; возвращает значение 5496, используйте калькулятор Windows в режиме «Программист» (calc.exe) для преобразования десятичных значений 5496 в двоичные. Результат равен 1010101111000. Самые левые символы (двоичные 1, 2 и 4) — нули, это означает, что параметры IMPLICIT_TRANSACTIONS и CURSOR_CLOSE_ON_COMMIT отключены. Следующий элемент (ANSI_WARNINGS в позиции 1000) включен. Продолжайте двигаться вправо по битовой матрице и вниз по списку параметров. Если самые правые символы — нули, они обрезаются при преобразовании типа. Битовая матрица 1010101111000 соответствует 001010101111000 для представления всех 15 параметров.

Примеры

A.Демонстрация влияния изменений на поведение

В следующем примере показано различие в поведении объединения при двух различных значениях параметра CONCAT_NULL_YIELDS_NULL.

SELECT @@OPTIONS AS OriginalOptionsValue;
SET CONCAT_NULL_YIELDS_NULL OFF;
SELECT 'abc' + NULL AS ResultWhen_OFF, @@OPTIONS AS OptionsValueWhen_OFF;

SET CONCAT_NULL_YIELDS_NULL ON;
SELECT 'abc' + NULL AS ResultWhen_ON, @@OPTIONS AS OptionsValueWhen_ON;

Б.Тестирование параметра клиента NOCOUNT

В следующем примере устанавливается аргумент NOCOUNT ON, а затем проверяется значение @@OPTIONS. Аргумент NOCOUNT ON препятствует тому, чтобы сообщение о количестве обработанных строк отправлялось обратно клиенту при выполнении каждой инструкции в сеансе. Функции @@OPTIONS присваивается значение 512 (0x0200). Оно представляет аргумент NOCOUNT. В этом примере производится проверка того, задействован ли аргумент NOCOUNT у клиента. Например, он может помочь отследить отличия в производительности у клиента.

SET NOCOUNT ON
IF @@OPTIONS & 512 > 0 
RAISERROR ('Current user has SET NOCOUNT turned on.', 1, 1)

См. также

Справочник

Функции конфигурации (Transact-SQL)

sp_configure (Transact-SQL)

Основные понятия

Настройка параметра конфигурации сервера user options