SET CONTEXT_INFO (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza 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 }  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

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 edizione Standard T, edizione Standard T 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 specificare un valore NULL per edizione Standard T CONTEXT_INFO perché le visualizzazioni che contengono 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 edizione Standard LECT e VIEW edizione Standard RVER 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