Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive di Istanza gestita di SQL di
Azure Istanza
gestita di SQL diAzure Azure Synapse Analytics
in Microsoft FabricWarehouse nel database SQL di
Microsoft Fabric
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
Importante
Gli argomenti per le stored procedure estese devono essere immessi nell'ordine specifico, come descritto nella sezione Sintassi. Se i parametri vengono immessi in ordine non corretto, si verifica un messaggio di errore.
[ @key = ] N'key'
Chiave impostata. @key è sysname senza impostazione predefinita. La dimensione massima della chiave è di 128 byte.
[ @value = ] 'valore'
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.
EXECUTE 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.
EXECUTE 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 .
EXECUTE sp_set_session_context 'client_correlation_id', '12323ad';Recuperare il valore.
SELECT SESSION_CONTEXT(N'client_correlation_id');