SET CONTEXT_INFO (Transact-SQL)

Применимо к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureБаза данных SQL в Microsoft Fabric

Связывает до 128 байт бинарных данных с текущим сеансом или соединением.

Соглашения о синтаксисе Transact-SQL

Синтаксис

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Аргументы

binary_str

Константа типа binary или константа, которая неявно преобразуется к типу binary, для связи с текущим сеансом или соединением.

@binary_var

Переменные типа varbinary или binary, удерживающие значение контекста для связи с текущим сеансом или соединением.

Замечания

Как и все SET заявления, SET CONTEXT_INFO влияет на текущую сессию. Предпочитаемый способ получения контекстной информации для текущей сессии — использовать эту CONTEXT_INFO функцию. Сведения о контексте сеанса также хранятся в context_info столбцах в следующих системных представлениях:

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (не рекомендуется)

SET CONTEXT_INFO не может быть заказан в пользовательской функции. Нельзя предоставить значение NULL, потому SET CONTEXT_INFO что виды с этими значениями не допускают значения NULL.

SET CONTEXT_INFO не принимает выражения, кроме констант или имён переменных. Чтобы задать сведения о контексте результатом вызываемой функции, необходимо сначала назначить результат вызова функции в переменную типа binary или varbinary.

Когда вы выдаёте SETSET CONTEXT_INFO данные в хранимой процедуре или триггере, в отличие от других SET операторов, новое значение для контекстной информации сохраняется после завершения сохранённой процедуры или триггера.

Примеры

А. Установка сведений о контексте с помощью константы

Следующий пример демонстрирует использование SET CONTEXT_INFO с заданием значения и отображением результатов. Для запроса sys.dm_exec_sessions требуется права SELECT и VIEW SERVER STATE, тогда как использование функции CONTEXT_INFO — нет.

SET CONTEXT_INFO 0x01010101;  
GO  
SELECT context_info   
FROM sys.dm_exec_sessions  
WHERE session_id = @@SPID;  
GO  

B. Настройка сведений о контексте с помощью функции

Следующий пример демонстрирует задание контекстного значения с использованием вывода функции, где значение от функции должно быть сначала помещено в переменную binary.

DECLARE @BinVar varbinary(128);  
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) );  
SET CONTEXT_INFO @BinVar;  
  
SELECT CONTEXT_INFO() AS MyContextInfo;  
GO