SET CONTEXT_INFO (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Связывает до 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.
Если SET 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