sp_set_session_context (Transact-SQL)
Si applica a: SQL Server 2016 (13.x) e Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Imposta una coppia chiave-valore nel contesto della sessione.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
Argomenti
[ @key = ] N'key'
Chiave impostata. @key è sysname senza impostazione predefinita. La dimensione massima della chiave è di 128 byte.
[ @value = ] 'value'
Valore della chiave specificata. @value è sql_variant, con il valore predefinito NULL
. L'impostazione di NULL
un valore di libera la memoria. Le dimensioni massime sono pari a 8.000 byte.
[ @read_only = ] read_only
Flag che indica se la chiave specificata può essere modificata nella connessione logica. @read_only è bit con un valore predefinito .0
- Se
1
, il valore per la chiave specificata non può essere modificato di nuovo in questa connessione logica. - Se
0
, 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.
È possibile monitorare l'utilizzo complessivo della memoria eseguendo query sys.dm_os_memory_cache_counters come indicato di seguito:
SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';
Esempi
R. Impostare e restituire un contesto di sessione
Nell'esempio seguente viene illustrato come impostare e quindi restituire la chiave di contesto di una sessione denominata language
, con il valore English
.
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. Impostare e restituire un ID di correlazione client
Nell'esempio seguente viene illustrato come impostare e recuperare una chiave di contesto di sessione denominata client_correlation_id
, con un valore .12323ad
Imposta il valore .
EXEC sp_set_session_context 'client_correlation_id', '12323ad';
Recuperare il valore.
SELECT SESSION_CONTEXT(N'client_correlation_id');