SESSION_CONTEXT (Transact-SQL)SESSION_CONTEXT (Transact-SQL)

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure sìAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

Restituisce il valore della chiave specificata nel contesto della sessione corrente.Returns the value of the specified key in the current session context. Il valore viene impostato usando la procedura sp_set_session_context (Transact-SQL).The value is set by using the sp_set_session_context (Transact-SQL) procedure.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

SESSION_CONTEXT(N'key')  

ArgomentiArguments

'key''key'
Chiave (tipo sysname) del valore da recuperare.The key (type sysname) of the value being retrieved.

Tipo restituitoReturn Type

sql_variantsql_variant

Valore restituitoReturn Value

Valore associato alla chiave specificata nel contesto della sessione oppure NULL se non è stato impostato alcun valore per tale chiave.The value associated with the specified key in the session context, or NULL if no value has been set for that key.

AutorizzazioniPermissions

Qualsiasi utente può leggere il contesto della sessione per la propria sessione.Any user can read the session context for their session.

RemarksRemarks

Il comportamento di MARS per SESSION_CONTEXT è simile a quello per CONTEXT_INFO.SESSION_CONTEXT's MARS behavior is similar to that of CONTEXT_INFO. Se un batch MARS imposta una coppia chiave-valore, il nuovo valore non viene restituito in altri batch MARS nella stessa connessione, salvo se l'operazione è iniziata dopo il completamento del batch che ha impostato il nuovo valore.If a MARS batch sets a key-value pair, the new value will not be returned in other MARS batches on the same connection unless they started after the batch that set the new value completed. Se su una connessione sono attivi più batch MARS non è possibile impostare i valori come "read_only" (sola lettura).If multiple MARS batches are active on a connection, values cannot be set as "read_only." Questo comportamento impedisce le race condition e il non determinismo relativo al valore che "ottiene la precedenza".This prevents race conditions and non-determinism about which value "wins."

EsempiExamples

Nell'esempio seguente viene impostato il valore di contesto della sessione per la chiave user_id su 4, quindi viene usata la funzione SESSION_CONTEXT per recuperare il valore.The following simple example sets the session context value for key user_id to 4, and then uses the SESSION_CONTEXT function to retrieve the value.

EXEC sp_set_session_context 'user_id', 4;  
SELECT SESSION_CONTEXT(N'user_id');  

Vedere ancheSee Also

sp_set_session_context (Transact-SQL) sp_set_session_context (Transact-SQL)
CURRENT_TRANSACTION_ID (Transact-SQL) CURRENT_TRANSACTION_ID (Transact-SQL)
Sicurezza a livello di riga Row-Level Security
CONTEXT_INFO (Transact-SQL) CONTEXT_INFO (Transact-SQL)
SET CONTEXT_INFO (Transact-SQL)SET CONTEXT_INFO (Transact-SQL)