SESSION_CONTEXT (Transact-SQL)

Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики Synapse Analytics Synapse Analyticsв хранилище Microsoft Fabricв Microsoft Fabric

Возвращает значение указанного ключа в контексте текущего сеанса. Значение задается с помощью процедуры sp_set_session_context (Transact-SQL).

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

Синтаксис

SESSION_CONTEXT(N'key')  

Аргументы

'key'
Ключ (типа sysname) извлекаемого значения.

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

sql_variant

Возвращаемое значение

Значение, связанное с указанным ключом в контексте сеанса, или NULL, если значение для этого ключа не задано.

Разрешения

Любой пользователь может считывать контекст своего сеанса.

Замечания

Поведение функции MARS для SESSION_CONTEXT аналогично ее поведению для CONTEXT_INFO. Если пакет MARS задает пару "ключ-значение", новое значение не будет возвращаться в других пакетах MARS по тому же соединению, если они были запущены до того, как завершилось выполнение пакета, задавшего это значение. Если в соединении активны несколько пакетов MARS, значения не могут принимать состояние "read_only". Это предотвращает возникновение условий гонки и неопределенность с выбором более приоритетного значения.

Примеры

В приведенном ниже простом примере значение контекста сеанса для ключа user_id устанавливается в 4, а затем используется функция SESSION_CONTEXT для получения значения.

EXEC sp_set_session_context 'user_id', 4;  
SELECT SESSION_CONTEXT(N'user_id');  

См. также

sp_set_session_context (Transact-SQL)
CURRENT_TRANSACTION_ID (Transact-SQL)
Безопасность на уровне строк
CONTEXT_INFO (Transact-SQL)
SET CONTEXT_INFO (Transact-SQL)