SET CONTEXT_INFO (Transact-SQL)
Associa fino a 128 byte di informazioni binarie alla sessione o connessione corrente.
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
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 sono anche archiviate nelle colonne context_info nelle viste di sistema seguenti:
sys.dm_exec_requests
sys.dm_exec_sessions
sys.sysprocesses
Non è possibile specificare l'istruzione SET CONTEXT_INFO in una funzione definita dall'utente. Per l'istruzione SET CONTEXT_INFO inoltre non è possibile specificare un valore Null perché la tabella sysprocesses non ammette 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
A. Impostazione delle informazioni relative al contesto tramite una costante
Nell'esempio seguente viene illustrato l'utilizzo della costante SET CONTEXT_INFO, mediante l'impostazione del valore e la visualizzazione dei risultati. Si noti che per l'esecuzione di una query su sys.dm_exec_sessions sono necessarie le autorizzazioni SELECT e VIEW SERVER STATE, mentre non lo sono per l'utilizzo della funzione CONTEXT_INFO.
SET CONTEXT_INFO 0x01010101
GO
SELECT context_info
FROM sys.dm_exec_sessions
WHERE session_id = @@SPID;
GO
B. Impostazione delle informazioni relative al contesto tramite una funzione
Nell'esempio seguente viene dimostrato 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