Partilhar via


SET CONTEXT_INFO (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Associa até 128 bytes de informações binárias à sessão ou conexão atual.

Convenções de sintaxe de Transact-SQL

Sintaxe

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Argumentos

binary_str

É uma constante binary, ou uma constante que pode ser convertida implicitamente em binary, a ser associada à sessão ou conexão atual.

@binary_var

É uma variável varbinary ou binary que mantém um valor de contexto a ser associado à sessão ou conexão atual.

Comentários

Como todas as instruções SET, o CONTEXT_INFO SET afeta a sessão atual. O modo preferido de recuperar as informações de contexto para a sessão atual é usar a função CONTEXT_INFO. As informações de contexto da context_info sessão também são armazenadas nas colunas nas seguintes exibições do sistema:

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

SET CONTEXT_INFO não pode ser especificado em uma função definida pelo usuário. Você não pode fornecer um valor NULL para SET CONTEXT_INFO porque as exibições que contêm os valores não permitem valores NULL.

SET CONTEXT_INFO não aceita expressões diferentes de constantes ou nomes de variável. Para definir as informações de contexto para o resultado de uma chamada de função, é necessário primeiro incluir o resultado da chamada de função em uma variável binary ou varbinary.

Ao emitir SET CONTEXT_INFO em um procedimento armazenado ou disparador, diferentemente de outras instruções SET, o novo valor definido para as informações de contexto persiste depois que o procedimento armazenado ou disparador é concluído.

Exemplos

R. Definir informações de contexto usando uma constante

O exemplo a seguir demonstra SET CONTEXT_INFO definindo o valor e exibindo os resultados. A consulta sys.dm_exec_sessions requer as permissões SELECT e VIEW SERVER STATE, enquanto o uso 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ções de contexto usando uma função

O exemplo a seguir demonstra o uso da saída de uma função para definir o valor de contexto, em que o valor da função deve ser colocado primeiro em uma variável binary.

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