sp_set_session_context(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server 2016(13.x) 이상 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics SQL 분석 엔드포인트
세션 컨텍스트에서 키-값 쌍을 설정합니다.
구문
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
인수
[ @key = ] N'key'
설정되는 키입니다. @key 기본값이 없는 sysname입니다. 최대 키 크기는 128바이트입니다.
[ @value = ] 'value'
지정된 키의 값입니다. @value 기본값NULL
인 sql_variant. 값을 NULL
설정하면 메모리가 해제됩니다. 최대 크기는 8,000바이트입니다.
[ @read_only = ] read_only
논리적 연결에서 지정된 키를 변경할 수 있는지 여부를 나타내는 플래그입니다. @read_only 기본값인 비트입니다0
.
- 이 경우
1
이 논리 연결에서 지정된 키의 값을 다시 변경할 수 없습니다. - 이 경우
0
값을 변경할 수 있습니다.
사용 권한
모든 사용자는 세션에 대한 세션 컨텍스트를 설정할 수 있습니다.
설명
다른 저장 프로시저와 마찬가지로 식이나 함수 호출이 아닌 리터럴 및 변수만 매개 변수로 전달할 수 있습니다.
세션 컨텍스트의 총 크기는 1MB로 제한됩니다. 이 제한을 초과하는 값을 설정하면 문이 실패합니다. sys.dm_os_memory_objects 전체 메모리 사용량을 모니터링할 수 있습니다.
다음과 같이 sys.dm_os_memory_cache_counters 쿼리하여 전체 메모리 사용량을 모니터링할 수 있습니다.
SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';
예제
A. 세션 컨텍스트 설정 및 반환
다음 예제에서는 값English
이 있는 세션의 컨텍스트 키를 language
설정한 다음 반환하는 방법을 보여 있습니다.
EXEC sys.sp_set_session_context @key = N'language', @value = 'English';
SELECT SESSION_CONTEXT(N'language');
다음 예제에서는 선택적 읽기 전용 플래그를 사용하는 방법을 보여 줍니다.
EXEC sys.sp_set_session_context @key = N'user_id', @value = 4, @read_only = 1;
B. 클라이언트 상관 관계 ID 설정 및 반환
다음 예제에서는 값12323ad
으로 명명client_correlation_id
된 세션 컨텍스트 키를 설정하고 검색하는 방법을 보여 있습니다.
값을 설정합니다.
EXEC sp_set_session_context 'client_correlation_id', '12323ad';
값을 검색합니다.
SELECT SESSION_CONTEXT(N'client_correlation_id');