SET CONTEXT_INFO (Transact-SQL)
Ordnet bis zu 128 Byte an binären Informationen der aktuellen Sitzung oder Verbindung zu.
Transact-SQL-Syntaxkonventionen
Syntax
SET CONTEXT_INFO { binary_str | @binary_var }
Argumente
- binary_str
Eine Konstante vom Typ binary oder eine implizit zu binary konvertierbare Konstante, die der aktuellen Sitzung oder Verbindung zugeordnet werden soll.
- **@**binary_var
Eine Variable vom Typ varbinary oder binary mit einem Kontextwert, der der aktuellen Sitzung oder Verbindung zugeordnet werden soll.
Hinweise
Die bevorzugte Vorgehensweise zum Abrufen von Kontextinformationen für die aktuelle Sitzung stellt die Verwendung der CONTEXT_INFO-Funktion dar. Informationen zum Sitzungskontext werden zudem in den context_info-Spalten der folgenden Systemsichten gespeichert:
- sys.dm_exec_requests
- sys.dm_exec_sessions
- sys.sysprocesses
SET CONTEXT_INFO kann nicht in einer benutzerdefinierten Funktion angegeben werden. Sie können mit SET CONTEXT_INFO keinen NULL-Wert angeben, da in den Sichten, die diese Werte enthalten, keine NULL-Werte zugelassen sind.
SET CONTEXT_INFO akzeptiert keine Ausdrücke, bei denen es sich nicht um Konstanten oder Variablennamen handelt. Wenn Sie die Kontextinformationen für das Ergebnis eines Funktionsaufrufes festlegen möchten, müssen Sie das Ergebnis des Funktionsaufrufes zuerst in einer Variablen vom Datentyp binary oder varbinary platzieren.
Wenn Sie SET CONTEXT_INFO in einer gespeicherten Prozedur oder einem Trigger ausführen, bleibt im Gegensatz zu anderen SET-Anweisungen der neue Wert für die Kontextinformationen bestehen, nachdem die gespeicherte Prozedur oder der Trigger beendet wurden.
Beispiele
A. Festlegen von Kontextinformationen mithilfe einer Konstanten
Im folgenden Beispiel wird die Verwendung von SET CONTEXT_INFO
durch das Festlegen des Wertes und Anzeigen der Ergebnisse erläutert. Beachten Sie, dass zum Abfragen von sys.dm_exec_sessions
die SELECT- und VIEW SERVER STATE-Berechtigungen erforderlich sind. Bei Verwendung der CONTEXT_INFO-Funktion gilt dies nicht.
SET CONTEXT_INFO 0x01010101
GO
SELECT context_info
FROM sys.dm_exec_sessions
WHERE session_id = @@SPID;
GO
A. Festlegen von Kontextinformationen mithilfe einer Funktion
Im folgenden Beispiel wird die Verwendung der Ausgabe einer Funktion zum Festlegen des Kontextwertes gezeigt, wobei der Wert aus der Funktion zunächst in einer Variablen vom Typ binary platziert werden muss.
DECLARE @BinVar varbinary(128)
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) )
SET CONTEXT_INFO @BinVar
SELECT CONTEXT_INFO() AS MyContextInfo;
GO
Siehe auch
Verweis
SET (Transact-SQL)
sys.dm_exec_requests
sys.dm_exec_sessions
CONTEXT_INFO (Transact-SQL)
Andere Ressourcen
Verwenden von Informationen zum Sitzungskontext