SET CONTEXT_INFO (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureDatabase SQL in Microsoft Fabric

Associa fino a 128 byte di informazioni binarie alla sessione o connessione corrente.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Argomenti

binary_str

È una costante binary o una costante convertibile in modo implicito in binary da associare alla sessione o connessione corrente.

@binary_var

È una variabile di tipo varbinary o binary contenente un valore contestuale da associare alla sessione o connessione corrente.

Osservazioni:

Come tutte SET le Dichiarazioni, SET CONTEXT_INFO influisce sulla sessione corrente. Il modo preferito per recuperare le informazioni contestuali per la sessione corrente è utilizzare la CONTEXT_INFO funzione. Le informazioni sul contesto della sessione vengono archiviate anche nelle context_info colonne nelle viste di sistema seguenti:

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

SET CONTEXT_INFO non può essere specificato in una funzione definita dall'utente. Non puoi fornire un valore NULL perché SET CONTEXT_INFO le viste che detengono i valori non permettono valori NULL.

SET CONTEXT_INFO non accetta espressioni diverse da costanti o nomi di variabili. Per impostare sul risultato di una chiamata di funzione le informazioni relative al contesto, è innanzitutto necessario inserire il risultato della chiamata di funzione in una variabile di tipo binary o varbinary.

Quando si emette SETSET CONTEXT_INFO una procedura o un trigger memorizzato, a differenza di altre SET istruzioni, il nuovo set di valori per le informazioni contestuali persiste dopo il completamento della procedura memorizzata o del trigger.

Esempi

R. Impostare le informazioni sul contesto usando una costante

Nell'esempio seguente viene illustrato l'utilizzo della costante SET CONTEXT_INFO, mediante l'impostazione del valore e la visualizzazione dei risultati. Le query sys.dm_exec_sessions richiedono i permessi SELECT e VIEW SERVER STATE, mentre l'uso della CONTEXT_INFO funzione no.

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

B. Impostare le informazioni sul contesto usando una funzione

L'esempio seguente dimostra l'utilizzo dell'output di una funzione per impostare il valore contestuale, dove il valore restituito dalla funzione deve essere innanzitutto inserito in una variabile binary.

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