Sdílet prostřednictvím


NASTAVTE CONTEXT_INFO (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Přiřazuje až 128 bajtů binárních informací k aktuální relaci nebo spojení.

Transact-SQL konvence syntaxe

Syntaxe

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Arguments

binary_str

Je binární konstanta, nebo konstanta, kterou lze implicitně převést na binární a spojit ji s aktuální relací nebo spojením.

@binary_var

Je varbinární nebo binární proměnná, která obsahuje kontextovou hodnotu určenou k přiřazení k aktuální relaci nebo spojení.

Poznámky

Stejně jako všechny SET příkazy, SET CONTEXT_INFO ovlivňuje aktuální relaci. Preferovaným způsobem, jak získat kontextové informace pro aktuální relaci, je použít funkci CONTEXT_INFO. Informace o kontextu relace jsou také uloženy ve sloupcích context_info v následujících systémových zobrazeních:

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (zastaralé)

SET CONTEXT_INFO nelze specifikovat v uživatelsky definované funkci. Nemůžete zadat NULL hodnotu do SET CONTEXT_INFO, protože pohledy s těmito hodnotami neumožňují NULL hodnoty.

SET CONTEXT_INFO nepřijímá výrazy jiné než konstanty nebo názvy proměnných. Pro nastavení kontextových informací k výsledku volání funkce musíte nejprve zahrnout výsledek volání funkce do binární nebo varbinární proměnné.

Když vydáte SET CONTEXT_INFO v uložené procedurě nebo triggeru, na rozdíl od jiných příkazů SET, nová sada hodnoty pro kontextové informace přetrvává i po dokončení uložené procedury nebo spouštěče.

Examples

A. Nastavte kontextové informace pomocí konstanty

Následující příklad ukazuje SET CONTEXT_INFO nastavením hodnoty a zobrazením výsledků. Dotazování sys.dm_exec_sessions vyžaduje oprávnění SELECT a VIEW SERVER STATE, zatímco použití funkce CONTEXT_INFO ne.

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

B. Nastavte kontextové informace pomocí funkce

Následující příklad ukazuje použití výstupu funkce k nastavení kontextové hodnoty, kde hodnota funkce musí být nejprve umístěna do binární proměnné.

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