Condividi tramite


SET CONTEXT_INFO (Transact-SQL)

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

Icona di collegamento a un argomentoConvenzioni della 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

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