Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
do Banco de Dados SQL
doAzure Azure Instância
Gerenciada de SQLdo Azure Synapse Analytics
ponto deextremidade de análise de SQL no Microsoft Fabric
Warehouse no Banco de Dados SQLdo Microsoft Fabric
no Microsoft Fabric
Retorna o valor da chave especificada no contexto de sessão atual. O valor é definido usando o procedimento sp_set_session_context .
Convenções de sintaxe de Transact-SQL
Sintaxe
SESSION_CONTEXT(N'key')
Argumentos
'key'
A chave do valor que está sendo recuperado. a chave é sysname.
Tipos de retorno
sql_variant
Valor de retorno
O valor associado à chave especificada no contexto da sessão ou NULL se nenhum valor for 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 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 sejam iniciados após o lote que definiu o novo valor concluído. Se vários lotes mars estiverem ativos em uma conexão, os valores não poderão ser definidos como read_only. Isso impede condições de corrida e não determinismo sobre qual valor ganha.
Exemplos
O exemplo simples a seguir define o valor de contexto da sessão para a 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 resolvida |
|---|---|---|---|
Uma exceção de AV (Violação de Acesso) pode ocorrer com a SESSION_CONTEXT função em determinadas condições. Você pode encontrar exceções de AV ou resultados incorretos quando a SESSION_CONTEXT função é executada dentro de um plano de execução paralelo 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 incorretos em SESSION_CONTEXT planos paralelos, mais tarde foi encontrada para causar exceções de AV em 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 |