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
Define um par chave-valor no contexto da sessão.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
Argumentos
Importante
Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.
@key [ = ] N'chave'
A chave sendo definida. @key é sysname sem padrão. O tamanho máximo da chave é 128 bytes.
@value [ = ] 'valor'
O valor para a chave especificada.
@value é sql_variant, com um padrão de NULL. Definir um valor de NULL libera a memória. O tamanho máximo é 8.000 bytes.
@read_only [ = ] read_only
Um sinalizador que indica se a chave especificada pode ser alterada na conexão lógica.
@read_only é bit com um padrão de 0.
- Se
1, o valor da chave especificada não poderá ser alterado novamente nessa conexão lógica. - Se
0, o valor pode ser alterado.
Permissões
Qualquer usuário pode definir o contexto de sessão de sua sessão.
Comentários
Como outros procedimentos armazenados, somente literais e variáveis (não expressões ou chamadas de função) podem ser passados como parâmetros.
O tamanho total do contexto da sessão é limitado a 1 MB. Se você definir um valor que faça com que esse limite seja excedido, a instrução falhará. Você pode monitorar o uso geral de memória no sys.dm_os_memory_objects.
Você pode monitorar o uso geral da memória consultando sys.dm_os_memory_cache_counters da seguinte maneira:
SELECT *
FROM sys.dm_os_memory_cache_counters
WHERE type = 'CACHESTORE_SESSION_CONTEXT';
Exemplos
R. Definir e retornar um contexto de sessão
O exemplo a seguir mostra como definir e retornar a chave de contexto de uma sessão chamada language, com um valor de English.
EXECUTE sys.sp_set_session_context
@key = N'language',
@value = 'English';
SELECT SESSION_CONTEXT(N'language');
O exemplo a seguir demonstra o uso do sinalizador opcional somente leitura.
EXECUTE sys.sp_set_session_context
@key = N'user_id',
@value = 4,
@read_only = 1;
B. Definir e retornar uma ID de correlação do cliente
O exemplo a seguir mostra como definir e recuperar uma chave de contexto de sessão chamada client_correlation_id, com um valor de 12323ad.
Defina o valor .
EXECUTE sp_set_session_context 'client_correlation_id', '12323ad';Recupere o valor.
SELECT SESSION_CONTEXT(N'client_correlation_id');