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álise de 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)