Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Koppelt tot 128 bytes aan binaire informatie aan de huidige sessie of verbinding.
Transact-SQL syntaxis-conventies
Syntaxis
SET CONTEXT_INFO { binary_str | @binary_var }
Arguments
binary_str
Is een binaire constante, of een constante die impliciet omgezet kan worden naar binair, om te associëren met de huidige sessie of verbinding.
@binary_var
Is een varbinaire of binaire variabele die een contextwaarde bevat om te koppelen aan de huidige sessie of verbinding?
Opmerkingen
Zoals alle SET-statements beïnvloedt SET CONTEXT_INFO de huidige sessie. De voorkeursmethode om de contextinformatie voor de huidige sessie op te halen is door de functie CONTEXT_INFO te gebruiken. Sessiecontextinformatie wordt ook opgeslagen in de context_info kolommen in de volgende systeemweergaven:
sys.dm_exec_requestssys.dm_exec_sessions-
sys.sysprocesses(afgeschaft)
SET CONTEXT_INFO kan niet worden gespecificeerd in een door de gebruiker gedefinieerde functie. Je kunt geen NULL-waarde aan SET CONTEXT_INFO geven omdat de views met de waarden geen NULL-waarden toestaan.
SET CONTEXT_INFO accepteert geen expressies anders dan constanten of variabelennamen. Om de contextinformatie te zetten als het resultaat van een functieaanroep, moet je eerst het resultaat van de functieaanroep opnemen in een binaire of varbinaire variabele.
Wanneer je SET CONTEXT_INFO uitvoert in een opgeslagen procedure of trigger, blijft de nieuwe waarde set voor de contextinformatie behouden nadat de opgeslagen procedure of trigger is voltooid.
Voorbeelden
Eén. Stel contextinformatie in door een constante te gebruiken
Het volgende voorbeeld demonstreert SET CONTEXT_INFO door de waarde in te stellen en de resultaten weer te geven. Queryen sys.dm_exec_sessions vereist SELECT- en VIEW SERVER STATE-permissies, terwijl het gebruik van de CONTEXT_INFO-functie dat niet doet.
SET CONTEXT_INFO 0x01010101;
GO
SELECT context_info
FROM sys.dm_exec_sessions
WHERE session_id = @@SPID;
GO
B. Stel contextinformatie in door gebruik te maken van een functie
Het volgende voorbeeld laat zien dat de uitvoer van een functie wordt gebruikt om de contextwaarde te bepalen, waarbij de waarde van de functie eerst in een binaire variabele moet worden geplaatst.
DECLARE @BinVar varbinary(128);
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) );
SET CONTEXT_INFO @BinVar;
SELECT CONTEXT_INFO() AS MyContextInfo;
GO