@@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)