sp_set_session_context (Transact-SQL)

Se aplica a: síSQL Server 2016 (13.x) y versiones posteriores SíAzure SQL Database SíInstancia administrada de Azure SQL síAzure Synapse Analytics

Establece un par clave-valor en el contexto de sesión.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @key = ] N'key'
Clave que se establece, de tipo sysname. El tamaño máximo de la clave es de 128 bytes.

[ @value = ] 'value'
Valor de la clave especificada, de tipo sql_variant. Al establecer un valor de NULL, se libera la memoria. El tamaño máximo es 8.000 bytes.

[ @read_only = ] { 0 | 1 }
Marca de tipo bit. Si es 1, el valor de la clave especificada no se puede cambiar de nuevo en esta conexión lógica. Si es 0 (valor predeterminado), se puede cambiar el valor.

Permisos

Cualquier usuario puede establecer un contexto de sesión para su sesión.

Observaciones

Al igual que otros procedimientos almacenados, solo se pueden pasar como parámetros literales y variables (no expresiones ni llamadas de función).

El tamaño total del contexto de sesión está limitado a 1 MB. Si establece un valor que hace que se supere este límite, se produce un error en la instrucción . Puede supervisar el uso general de memoria en sys.dm_os_memory_objects (Transact-SQL).

Puede supervisar el uso general de memoria consultando sys.dm_os_memory_cache_counters (Transact-SQL) como se muestra a continuación:SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';

Ejemplos

A. En el ejemplo siguiente se muestra cómo establecer y, a continuación, devolver una clave de contexto de sesiones denominada language con un valor de inglés.

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

En el ejemplo siguiente se muestra el uso de la marca de solo lectura opcional.

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

B En el ejemplo siguiente se muestra cómo establecer y recuperar una clave de contexto de sesión denominada client_correlation_id con un valor de 12323ad.

-- set value
EXEC sp_set_session_context 'client_correlation_id', '12323ad'; 

--check value
SELECT SESSION_CONTEXT(N'client_correlation_id');

Consulte también

CURRENT_TRANSACTION_ID (Transact-SQL)
SESSION_CONTEXT (Transact-SQL)
Seguridad de nivel de fila
CONTEXT_INFO (Transact-SQL)
SET CONTEXT_INFO (Transact-SQL)