Partilhar via


SET CONTEXT_INFO (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Associa até 128 bytes de informação binária à sessão ou ligação atual.

Transact-SQL convenções de sintaxe

Sintaxe

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Arguments

binary_str

É uma constante binária , ou uma constante que é implicitamente convertível em binária, para associar à sessão ou ligação atual.

@binary_var

É uma variável varbinária ou binária que detém um valor de contexto para associar à sessão ou ligação atual.

Observações

Como todas as Instruções SET, o SET CONTEXT_INFO afeta a sessão atual. A forma preferida de recuperar a informação de contexto para a sessão atual é usar a função CONTEXT_INFO. A informação de contexto da sessão também é armazenada nas context_info colunas das seguintes vistas do sistema:

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (preterido)

SET CONTEXT_INFO não pode ser especificado numa função definida pelo utilizador. Não pode fornecer um valor NULL ao CONTEXT_INFO SET porque as vistas que detêm esses valores não permitem valores NULL.

O SET CONTEXT_INFO não aceita expressões que não sejam constantes ou nomes de variáveis. Para definir a informação de contexto para o resultado de uma chamada de função, deve primeiro incluir o resultado da chamada de função numa variável binária ou varbinária .

Quando emite CONTEXT_INFO SET num procedimento armazenado ou trigger, ao contrário de outras instruções SET, o novo conjunto de valores para a informação de contexto persiste após o procedimento armazenado ou disparador ser concluído.

Examples

A. Definir a informação de contexto usando uma constante

O exemplo seguinte demonstra SET CONTEXT_INFO definindo o valor e mostrando os resultados. A consulta sys.dm_exec_sessions requer permissões SELECT e VIEW SERVER STATE, enquanto a utilização da função CONTEXT_INFO não.

SET CONTEXT_INFO 0x01010101;  
GO  
SELECT context_info   
FROM sys.dm_exec_sessions  
WHERE session_id = @@SPID;  
GO  

B. Definir informação de contexto usando uma função

O exemplo seguinte demonstra o uso da saída de uma função para definir o valor de contexto, onde o valor da função deve ser primeiro colocado numa variável binária .

DECLARE @BinVar varbinary(128);  
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) );  
SET CONTEXT_INFO @BinVar;  
  
SELECT CONTEXT_INFO() AS MyContextInfo;  
GO