다음을 통해 공유


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 분석 엔드포인트

세션 컨텍스트에서 키-값 쌍을 설정합니다.

Transact-SQL 구문 표기 규칙

구문

sp_set_session_context
    [ @key = ] N'key'
    , [ @value = ] 'value'
    [ , [ @read_only = ] read_only ]
[ ; ]

인수

[ @key = ] N'key'

설정되는 키입니다. @key 기본값이 없는 sysname입니다. 최대 키 크기는 128바이트입니다.

[ @value = ] 'value'

지정된 키의 값입니다. @value 기본값NULLsql_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된 세션 컨텍스트 키를 설정하고 검색하는 방법을 보여 있습니다.

  1. 값을 설정합니다.

    EXEC sp_set_session_context 'client_correlation_id', '12323ad';
    
  2. 값을 검색합니다.

    SELECT SESSION_CONTEXT(N'client_correlation_id');