Udostępnij za pomocą


ZESTAW CONTEXT_INFO (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Łączy do 128 bajtów informacji binarnych z aktualną sesją lub połączeniem.

Transact-SQL konwencje składni

Składnia

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Arguments

binary_str

Jest stałą binarną lub stałą, którą można domyślnie przekształcić na binarną, aby skojarzyć się z bieżącą sesją lub połączeniem.

@binary_var

Czy jest zmienną varbinarną lub binarną zawierającą wartość kontekstową do powiązania z bieżącą sesją lub połączeniem.

Uwagi

Jak wszystkie instrukcje SET, SET CONTEXT_INFO wpływa na bieżącą sesję. Preferowanym sposobem pobrania informacji kontekstowych dla bieżącej sesji jest użycie funkcji CONTEXT_INFO. Informacje o kontekście sesji są również przechowywane w kolumnach context_info w następujących widokach systemowych:

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (przestarzałe)

SET CONTEXT_INFO nie może być określony w funkcji zdefiniowanej przez użytkownika. Nie możesz podać wartości NULL do SET CONTEXT_INFO, ponieważ widoki zawierające te wartości nie pozwalają na wartości NULL.

SET CONTEXT_INFO nie akceptuje wyrażeń innych niż stałe lub nazwy zmiennych. Aby ustawić informacje kontekstowe do wyniku wywołania funkcji, najpierw należy uwzględnić wynik wywołania funkcji w zmiennej binarnej lub varbinarnej .

Gdy wydajesz CONTEXT_INFO SET w procedurze zapisanej lub wyzwalaczu, w przeciwieństwie do innych instrukcji SET, nowy zestaw wartości dla informacji kontekstowej pozostaje zachowany po zakończeniu procedury lub wyzwalania.

Przykłady

A. Określ informacje kontekstowe za pomocą stałej

Poniższy przykład demonstruje SET CONTEXT_INFO to poprzez ustawienie wartości i wyświetlanie wyników. Zapytania sys.dm_exec_sessions wymagają uprawnień SELECT i VIEW SERVER STATE, natomiast użycie funkcji CONTEXT_INFO nie.

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

B. Ustal informacje kontekstowe za pomocą funkcji

Poniższy przykład pokazuje użycie wyjścia funkcji do ustawienia wartości kontekstowej, gdzie wartość z funkcji musi być najpierw umieszczona w zmiennej binarnej .

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