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
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Endpoint di analisi SQL in Microsoft Fabric
Warehouse in Microsoft Fabric
Restituisce il valore della chiave specificata nel contesto della sessione corrente. Il valore viene impostato utilizzando la routine sp_set_session_context .
Convenzioni relative alla sintassi Transact-SQL
Sintassi
SESSION_CONTEXT(N'key')
Argomenti
'key'
Chiave del valore recuperato. key è sysname.
Tipi restituiti
sql_variant
Valore restituito
Valore associato alla chiave specificata nel contesto della sessione o NULL
se non viene impostato alcun valore per tale chiave.
Autorizzazioni
Qualsiasi utente può leggere il contesto della sessione per la propria sessione.
Osservazioni:
Il comportamento mars per SESSION_CONTEXT
' è simile a quello di CONTEXT_INFO
. Se un batch MARS imposta una coppia chiave-valore, il nuovo valore non viene restituito in altri batch MARS nella stessa connessione, a meno che non vengano avviati dopo il batch che imposta il nuovo valore completato. Se più batch MARS sono attivi in una connessione, i valori non possono essere impostati come read_only
. Ciò impedisce condizioni di race e non determinismo su quale valore vince.
Esempi
L'esempio semplice seguente imposta il valore del contesto di sessione per la chiave user_id
su 4 e quindi usa la SESSION_CONTEXT
funzione per recuperare il valore.
EXECUTE sp_set_session_context 'user_id', 4;
SELECT SESSION_CONTEXT(N'user_id');
Problemi noti
Problema | Data di scoperta | stato | Data di risoluzione |
---|---|---|---|
È possibile che si verifichi un'eccezione di violazione di accesso (AV) con la SESSION_CONTEXT funzione in determinate condizioni. È possibile che si verifichino eccezioni AV o risultati errati quando la SESSION_CONTEXT funzione viene eseguita all'interno di un piano di esecuzione parallelo quando la sessione viene reimpostata per il riutilizzo.Una correzione, introdotta in SQL Server 2019 (15.x) CU 14 per risolvere un problema di risultati errati con SESSION_CONTEXT i piani paralleli, è stata successivamente rilevata per causare eccezioni AV in determinate condizioni.Per attenuare questo problema, è possibile abilitare il flag di traccia 11024 come flag di traccia di avvio, globale o sessione. Questo flag di traccia forza SESSION_CONTEXT l'esecuzione seriale, impedendone la partecipazione ai piani di query paralleli.Si applica a: SQL Server 2019 (15.x) CU 14 e versioni successive. |
Gennaio 2022 | Ha una soluzione alternativa |