Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint in Microsoft Fabric
Warehouse em Microsoft Fabric
SQL database in Microsoft Fabric
Retorna o valor da chave especificada no contexto de sessão atual. O valor é definido usando o procedimento sp_set_session_context .
Transact-SQL convenções de sintaxe
Sintaxe
SESSION_CONTEXT(N'key')
Argumentos
'Chave'
A chave do valor que está sendo recuperado. chave é sysname.
Tipos de devolução
sql_variant
Valor de retorno
O valor associado à chave especificada no contexto da sessão ou NULL se nenhum valor estiver definido para essa chave.
Permissões
Qualquer usuário pode ler o contexto da sessão para sua sessão.
Observações
O comportamento do MARS para 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 condições raciais e o não determinismo sobre qual valor ganha.
Exemplos
O exemplo simples a seguir define o valor de contexto de sessão para chave user_id como 4 e, em seguida, usa a SESSION_CONTEXT função para recuperar o valor.
EXECUTE sp_set_session_context 'user_id', 4;
SELECT SESSION_CONTEXT(N'user_id');
Problemas conhecidos
| Questão | Data de descoberta | Situação | Data concluída |
|---|---|---|---|
Uma exceção de violação de acesso (AV) pode ocorrer com a SESSION_CONTEXT função sob determinadas condições. Você pode encontrar exceções AV ou resultados errados quando a função é executada SESSION_CONTEXT dentro de um plano de execução paralela quando a sessão é redefinida para reutilização.Uma correção, que foi introduzida no SQL Server 2019 (15.x) 14 para resolver um problema de resultados errados com SESSION_CONTEXT planos paralelos, foi posteriormente encontrada para causar exceções de AV sob determinadas condições.Para atenuar esse problema, você pode habilitar o sinalizador de rastreamento 11042 como um sinalizador de rastreamento de inicialização, global ou de sessão. Esse sinalizador de rastreamento força SESSION_CONTEXT a execução em série, impedindo que ele participe de planos de consulta paralelos.Aplica-se a: SQL Server 2019 (15.x) 14 e versões posteriores. |
Janeiro de 2022 | Tem solução alternativa |