sp_set_session_context (Transact-SQL)

Si applica a:SQL Server 2016 (13.x) e Database SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsEndpoint di analisi SQL in Microsoft FabricWarehouse 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');