sp_set_session_context (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive database SQL di Azure Istanza gestita di SQL di Azure Endpoint di analisi SQL di Azure Synapse Analyticsin Microsoft FabricWarehouse in Microsoft Fabric

Imposta una coppia chiave-valore nel contesto della sessione.

Convenzioni di sintassi Transact-SQL

Sintassi

sp_set_session_context [ @key= ] N'key', [ @value= ] 'value'  
    [ , [ @read_only = ] { 0 | 1 } ]  
[ ; ]  

Argomenti

[ @key= ] N'key'
Chiave impostata, di tipo sysname. La dimensione massima della chiave è di 128 byte.

[ @value= ] 'value'
Valore per la chiave specificata, di tipo sql_variant. L'impostazione di un valore NULL libera la memoria. Le dimensioni massime sono pari a 8.000 byte.

[ @read_only= ] { 0 | 1 }
Flag di tipo bit. Se 1, il valore per la chiave specificata non può essere modificato di nuovo in questa connessione logica. Se 0 (impostazione predefinita), il valore può essere modificato.

Autorizzazioni

Qualsiasi utente può impostare un contesto di sessione per la sessione.

Osservazioni:

Analogamente ad altre stored procedure, solo i valori letterali e le variabili (non espressioni o chiamate di funzione) possono essere passati come parametri.

Le dimensioni totali del contesto di sessione sono limitate a 1 MB. Se si imposta un valore che causa il superamento di questo limite, l'istruzione ha esito negativo. È possibile monitorare l'utilizzo complessivo della memoria in sys.dm_os_memory_objects (Transact-SQL).

È possibile monitorare l'utilizzo complessivo della memoria eseguendo query su sys.dm_os_memory_cache_counters (Transact-SQL) come indicato di seguito: SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';

Esempi

R. Nell'esempio seguente viene illustrato come impostare e quindi restituire una chiave di contesto delle sessioni denominata language con un valore in inglese.

EXEC sys.sp_set_session_context @key = N'language', @value = 'English';  
SELECT SESSION_CONTEXT(N'language');  

Nell'esempio seguente viene illustrato l'uso del flag facoltativo di sola lettura.

EXEC sys.sp_set_session_context @key = N'user_id', @value = 4, @read_only = 1;  

B. Nell'esempio seguente viene illustrato come impostare e recuperare una chiave di contesto della sessione denominata client_correlation_id con un valore pari a 12323ad.

-- set value
EXEC sp_set_session_context 'client_correlation_id', '12323ad'; 

--check value
SELECT SESSION_CONTEXT(N'client_correlation_id');

Vedi anche

CURRENT_TRANSACTION_ID (Transact-SQL)
edizione StandardSSION_CONTEXT (Transact-SQL)
Sicurezza a livello di riga
CONTEXT_INFO (Transact-SQL)
edizione Standard T CONTEXT_INFO (Transact-SQL)