SET CONTEXT_INFO (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Kopplar upp till 128 byte binär information till den aktuella sessionen eller anslutningen.

Transact-SQL syntaxkonventioner

Syntax

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Arguments

binary_str

Är en binär konstant, eller en konstant som implicit kan konverteras till binär, att associera med den aktuella sessionen eller anslutningen.

@binary_var

Är en varbinär eller binär variabel som håller ett kontextvärde att associera med den aktuella sessionen eller anslutningen.

Anmärkningar

Som alla SET uttalandenSET CONTEXT_INFO påverkar det den aktuella sessionen. Det föredragna sättet att hämta kontextinformationen för den aktuella sessionen är att använda funktionen CONTEXT_INFO . Sessionskontextinformation lagras också i kolumnerna context_info i följande systemvyer:

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (inaktuell)

SET CONTEXT_INFO kan inte specificeras i en användardefinierad funktion. Du kan inte ange ett NULL-värde till SET CONTEXT_INFO eftersom vyerna som innehåller värdena inte tillåter NULL-värden.

SET CONTEXT_INFO accepterar inte uttryck annat än konstanter eller variabelnamn. För att sätta kontextinformationen till resultatet av ett funktionsanrop måste du först inkludera resultatet av funktionsanropet i en binär eller varbinär variabel.

När du skickar SETSET CONTEXT_INFO in en lagrad procedur eller trigger, till skillnad från andra SET satser, kvarstår den nya värdeuppsättningen för kontextinformationen efter att den lagrade proceduren eller triggern är slutförd.

Examples

A. Sätt kontextinformation genom att använda en konstant

Följande exempel demonstrerar SET CONTEXT_INFO genom att sätta värdet och visa resultaten. Att söka sys.dm_exec_sessions kräver behörigheter för SELECT och VIEW SERVER STATE, medan användning av CONTEXT_INFO funktionen inte gör det.

SET CONTEXT_INFO 0x01010101;  
GO  
SELECT context_info   
FROM sys.dm_exec_sessions  
WHERE session_id = @@SPID;  
GO  

B. Sätt kontextinformation genom att använda en funktion

Följande exempel visar att man använder utdata från en funktion för att sätta kontextvärdet, där värdet från funktionen först måste placeras i en binär variabel.

DECLARE @BinVar varbinary(128);  
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) );  
SET CONTEXT_INFO @BinVar;  
  
SELECT CONTEXT_INFO() AS MyContextInfo;  
GO