SET CONTEXT_INFO (Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric의 SQL 데이터베이스

128바이트까지의 이전 정보를 현재 연결 또는 현재 세션과 연결합니다.

Transact-SQL 구문 표기 규칙

구문

  
SET CONTEXT_INFO { binary_str | @binary_var }  

인수

binary_str

현재 세션이나 연결에 연결하는 binary 상수이거나 암묵적으로 binary로 변환할 수 있는 상수입니다.

@binary_var

현재 세션이나 연결에 연결할 수 있는 컨텍스트 값을 보유하는 varbinary 또는 binary 변수입니다.

설명

모든 SET 진술서와 마찬가지로, SET CONTEXT_INFO 현재 세션에 영향을 미칩니다. 현재 세션의 컨텍스트 정보를 가져오는 선호되는 방법은 함수를 CONTEXT_INFO 사용하는 것입니다. 세션 컨텍스트 정보는 다음 시스템 보기의 context_info 열에도 저장됩니다.

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses(더 이상 사용되지 않음)

SET CONTEXT_INFO 사용자 정의 함수로는 지정할 수 없습니다. NULL 값을 SET CONTEXT_INFO 제공할 수 없는데, 값을 가진 뷰들이 NULL 값을 허용하지 않기 때문입니다.

SET CONTEXT_INFO 상수나 변수 이름 외에는 다른 표현식을 받아들이지 않습니다. 함수 호출 결과로 컨텍스트 정보를 설정하려면 먼저 binary 또는 varbinary 변수에 함수 호출 결과를 포함시켜야 합니다.

저장 프로시저나 트리거에서 이슈를 할 SETSET CONTEXT_INFO 때, 다른 SET 문장과 달리 컨텍스트 정보의 새 값 설정은 저장 프로시저나 트리거가 완료된 후에도 유지됩니다.

예제

A. 상수로 컨텍스트 정보 설정

다음 예에서는 값을 설정하고 결과를 표시하여 SET CONTEXT_INFO를 보여 줍니다. 쿼리는 sys.dm_exec_sessions SELECT와 VIEW SERVER STATE 권한이 필요하지만, 함수 사용 CONTEXT_INFO 은 필요하지 않습니다.

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

B. 함수를 사용하여 컨텍스트 정보 설정

다음 예에서는 함수의 결과를 사용하여 컨텍스트 값을 설정합니다. 이때 함수의 값을 binary 변수에 먼저 넣어야 합니다.

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