sp_set_session_context (Transact-SQL)
Aplica-se a: SQL Server 2016 (13.x) e posterior
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
ponto de extremidade do Azure Synapse Analytics
SQL Analytics no Microsoft Fabric
Warehouse no Microsoft Fabric
Define um par chave-valor no contexto da sessão.
Transact-SQL convenções de sintaxe
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 de sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.
[ @key = ] N'chave'
A chave que está sendo definida. @key é sysname sem padrão. O tamanho máximo da chave é de 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 é de 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 é pouco com um padrão de 0
.
- Se
1
, o valor da chave especificada não poderá ser alterado novamente nesta conexão lógica. - Se
0
, o valor pode ser alterado.
Permissões
Qualquer usuário pode definir um contexto de sessão para sua sessão.
Comentários
Como outros procedimentos armazenados, apenas 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 faz com que esse limite seja excedido, a instrução falhará. Você pode monitorar o uso geral da 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
Um. 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
.
EXEC sys.sp_set_session_context @key = N'language', @value = 'English';
SELECT SESSION_CONTEXT(N'language');
O exemplo a seguir demonstra o uso do sinalizador somente leitura opcional.
EXEC 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.
EXEC sp_set_session_context 'client_correlation_id', '12323ad';
Recupere o valor.
SELECT SESSION_CONTEXT(N'client_correlation_id');
Conteúdo relacionado
- CURRENT_TRANSACTION_ID (Transact-SQL)
- SESSION_CONTEXT (Transact-SQL)
- de segurança em nível de linha
- CONTEXT_INFO (Transact-SQL)
- CONJUNTO CONTEXT_INFO (Transact-SQL)