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)