Condividi tramite


SET CONTEXT_INFO (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

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:

Analogamente a tutte le istruzioni SET, set CONTEXT_INFO influisce sulla sessione corrente. Il modo preferito per recuperare informazioni sul contesto per la sessione corrente consiste nell'utilizzare la funzione CONTEXT_INFO. 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)

Non è possibile specificare l'istruzione SET CONTEXT_INFO in una funzione definita dall'utente. Non è possibile fornire un valore NULL a SET CONTEXT_INFO perché le viste contenenti i valori non consentono valori NULL.

L'opzione SET CONTEXT_INFO non supporta espressioni che non siano 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 viene eseguita l'istruzione SET CONTEXT_INFO in una stored procedure o in un trigger, a differenza di altre istruzioni SET il nuovo valore impostato per le informazioni sul contesto viene mantenuto anche dopo il completamento della stored procedure 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. L'esecuzione di sys.dm_exec_sessions query richiede autorizzazioni SELECT e VIEW SERVER STATE, mentre l'uso della funzione CONTEXT_INFO non è .

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