SESSION_CONTEXT (Transact-SQL)
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL Azure 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)