Condividi tramite


sp_set_session_context (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics in Microsoft Fabric Warehouse in Microsoft Fabric

Imposta una coppia chiave-valore nel contesto della sessione.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @key = ] N'key'

Chiave impostata. @key è sysname senza impostazione predefinita. La dimensione massima della chiave è di 128 byte.

[ @value = ] 'value'

Valore della chiave specificata. @value è sql_variant, con il valore predefinito NULL. L'impostazione di NULL un valore di libera la memoria. Le dimensioni massime sono pari a 8.000 byte.

[ @read_only = ] read_only

Flag che indica se la chiave specificata può essere modificata nella connessione logica. @read_only è bit con un valore predefinito .0

  • Se 1, il valore per la chiave specificata non può essere modificato di nuovo in questa connessione logica.
  • Se 0, il valore può essere modificato.

Autorizzazioni

Qualsiasi utente può impostare un contesto di sessione per la sessione.

Osservazioni:

Analogamente ad altre stored procedure, solo i valori letterali e le variabili (non espressioni o chiamate di funzione) possono essere passati come parametri.

Le dimensioni totali del contesto di sessione sono limitate a 1 MB. Se si imposta un valore che causa il superamento di questo limite, l'istruzione ha esito negativo. È possibile monitorare l'utilizzo complessivo della memoria in sys.dm_os_memory_objects (Transact-SQL).

È possibile monitorare l'utilizzo complessivo della memoria eseguendo query su sys.dm_os_memory_cache_counters (Transact-SQL) come indicato di seguito:

SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';

Esempi

R. Impostare e restituire un contesto di sessione

Nell'esempio seguente viene illustrato come impostare e quindi restituire la chiave di contesto di una sessione denominata language, con il valore English.

EXEC sys.sp_set_session_context @key = N'language', @value = 'English';
SELECT SESSION_CONTEXT(N'language');

Nell'esempio seguente viene illustrato l'uso del flag facoltativo di sola lettura.

EXEC sys.sp_set_session_context @key = N'user_id', @value = 4, @read_only = 1;

B. Impostare e restituire un ID di correlazione client

Nell'esempio seguente viene illustrato come impostare e recuperare una chiave di contesto di sessione denominata client_correlation_id, con un valore .12323ad

  1. Impostare il valore.

    EXEC sp_set_session_context 'client_correlation_id', '12323ad';
    
  2. Recuperare il valore.

    SELECT SESSION_CONTEXT(N'client_correlation_id');