Compartilhar via


SESSION_CONTEXT (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e posterior Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Ponto de extremidade de análises SQL no Microsoft Fabric Warehouse no Microsoft Fabric

Retorna o valor da chave especificada no contexto de sessão atual. O valor é definido com o procedimento sp_set_session_context (Transact-SQL).

Convenções de sintaxe de Transact-SQL

Sintaxe

SESSION_CONTEXT(N'key')  

Argumentos

'key'
A chave (tipo sysname) do valor que está sendo recuperado.

Tipo de retorno

sql_variant

Valor retornado

O valor associado à chave especificada no contexto de sessão ou NULL se nenhum valor foi definido para essa chave.

Permissões

Qualquer usuário pode ler o contexto de sessão de sua sessão.

Comentários

O comportamento de MARS de SESSION_CONTEXT é semelhante ao de CONTEXT_INFO. Se um lote MARS definir um par chave-valor, o novo valor não será retornado em outros lotes MARS na mesma conexão, a menos que eles tenham sido iniciados após a conclusão do lote que definiu o novo valor. Se vários lotes MARS estiverem ativos em uma conexão, os valores não poderão ser definidos como "read_only". Isso evita as condições de corrida e o não determinismo sobre qual valor "vence".

Exemplos

O exemplo simples a seguir define o valor de contexto de sessão para a chave user_id como 4 e, em seguida, usa a função SESSION_CONTEXT para recuperar o valor.

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

Consulte Também

sp_set_session_context (Transact-SQL)
CURRENT_TRANSACTION_ID (Transact-SQL)
Segurança em nível de linha
CONTEXT_INFO (Transact-SQL)
SET CONTEXT_INFO (Transact-SQL)