다음을 통해 공유


SET CONTEXT_INFO(Transact-SQL)

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

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

SET CONTEXT_INFO { binary_str | @binary_var }

인수

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

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

주의

현재 세션에 대한 컨텍스트 정보를 검색하는 기본 방법은 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 변수에 함수 호출 결과를 포함시켜야 합니다.

저장 프로시저나 트리거에서 SET CONTEXT_INFO를 실행하면 다른 SET 문과 달리 저장 프로시저나 트리거가 완료된 후에도 컨텍스트 정보에 대해 설정된 새 값이 계속 유지됩니다.

1. 상수를 사용하여 컨텍스트 정보 설정

다음 예에서는 값을 설정하고 결과를 표시하여 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

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

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

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

SELECT CONTEXT_INFO() AS MyContextInfo;
GO