sp_set_session_context (Transact-SQL)sp_set_session_context (Transact-SQL)

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure sìAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

Imposta una coppia chiave-valore nel contesto della sessione.Sets a key-value pair in the session context.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

sp_set_session_context [ @key= ] N'key', [ @value= ] 'value'  
    [ , [ @read_only = ] { 0 | 1 } ]  
[ ; ]  

ArgomentiArguments

[ @key=] N'key'[ @key= ] N'key'
La chiave viene impostata, di tipo sysname.The key being set, of type sysname. La dimensione massima della chiave è 128 byte.The maximum key size is 128 bytes.

[ @value=] 'value'[ @value= ] 'value'
Il valore della chiave specificata, di tipo sql_variant.The value for the specified key, of type sql_variant. Impostazione di un valore null libera la memoria.Setting a value of NULL frees the memory. Le dimensioni massime sono pari a 8.000 byte.The maximum size is 8,000 bytes.

[ @read_only= ] { 0 | 1 }[ @read_only= ] { 0 | 1 }
Un flag di tipo bit.A flag of type bit. Se è 1, quindi il valore della chiave specificata non può essere più modificato in questa connessione logica.If 1, then the value for the specified key cannot be changed again on this logical connection. Se 0 (impostazione predefinita), quindi il valore può essere modificato.If 0 (default), then the value can be changed.

PermissionsPermissions

Qualsiasi utente può impostare un contesto di sessione per la propria sessione.Any user can set a session context for their session.

NoteRemarks

Analogamente alle altre stored procedure, solo i valori letterali e variabili (chiamate di funzione o espressioni not) possono essere passate come parametri.Like other stored procedures, only literals and variables (not expressions or function calls) can be passed as parameters.

Le dimensioni totali del contesto della sessione sono limitata a 1 MB.The total size of the session context is limited to 1 MB. Se si imposta un valore che determina il superamento del limite, l'istruzione ha esito negativo.If you set a value that causes this limit to be exceeded, the statement fails. È possibile monitorare l'utilizzo della memoria globale nel DM os_memory_objects (Transact-SQL).You can monitor overall memory usage in sys.dm_os_memory_objects (Transact-SQL).

È possibile monitorare l'utilizzo della memoria globale eseguendo una query 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';You can monitor overall memory usage by querying sys.dm_os_memory_cache_counters (Transact-SQL) as follows: SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';

EsempiExamples

Nell'esempio seguente viene illustrato come impostare e restituire quindi una chiave di contesto sessioni denominata linguaggio con un valore di lingua inglese.The following example shows how to set and then return a sessions context key named language with a value of English.

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

Nell'esempio seguente viene illustrato l'utilizzo del flag di sola lettura facoltativo.The following example demonstrates the use of the optional read-only flag.

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

Vedere ancheSee Also

CURRENT_TRANSACTION_ID (Transact-SQL) CURRENT_TRANSACTION_ID (Transact-SQL)
SESSION_CONTEXT (Transact-SQL) SESSION_CONTEXT (Transact-SQL)
Sicurezza a livello di riga Row-Level Security
CONTEXT_INFO (Transact-SQL) CONTEXT_INFO (Transact-SQL)
SET CONTEXT_INFO (Transact-SQL)SET CONTEXT_INFO (Transact-SQL)