Freigeben über


SESSION_CONTEXT (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und später Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics SQL-Analyse-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric

Gibt den Wert des angegebenen Schlüssels im aktuellen Sitzungskontext zurück. Der Wert wird mithilfe der sp_set_session_context (Transact-SQL)-Prozedur festgelegt.

Transact-SQL-Syntaxkonventionen

Syntax

SESSION_CONTEXT(N'key')  

Argumente

'key'
Der Schlüssel (vom Typ „sysname“) des Werts, der abgerufen wird.

Rückgabetyp

sql_variant

Rückgabewert

Der Wert, der dem angegebenen Schlüssel im Sitzungskontext zugeordnet ist oder NULL, wenn für diesen Schlüssel kein Wert festgelegt wurde.

Berechtigungen

Jeder Benutzer kann den Sitzungskontext für seine Sitzung lesen.

Bemerkungen

Das MARS-Verhalten von SESSION_CONTEXT ist dem von CONTEXT_INFO ähnlich. Wenn ein MARS-Batch ein Schlüssel-Wert-Paar festlegt, wird der neue Wert nicht in anderen MARS-Batches auf derselben Verbindung zurückgegeben, es sei denn, sie beginnen nach dem Batch, der den neuen Wert festgelegt hat. Wenn mehrere MARS-Batches in einer Verbindung aktiv sind, können Werte nicht als „read_only“ festgelegt werden. Dies verhindert sowohl, dass Racebedingungen dafür festgelegt werden, welcher Wert „gewinnt“, als auch Determinismus.

Beispiele

Im folgenden, einfachen Beispiel wird der Sitzungkontextwert für den Schlüssel user_id auf 4 festgelegt und der Wert dann mithilfe der SESSION_CONTEXT-Funktion abgerufen.

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

Siehe auch

sp_set_session_context (Transact-SQL)
CURRENT_TRANSACTION_ID (Transact-SQL)
Sicherheit auf Zeilenebene
CONTEXT_INFO (Transact-SQL)
SET CONTEXT_INFO (Transact-SQL)