Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics sql analytics endpoint
in Microsoft Fabric
Warehouse in Microsoft FabricSQL Database in Microsoft Fabric SQL Database
in Microsoft Fabric
Establece un par clave-valor en el contexto de sesión.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
Argumentos
Importante
Los argumentos para los procedimientos almacenados extendidos deben especificarse en el orden específico, tal como se describe en la sección sintaxis de . Si los parámetros se escriben fuera de orden, se produce un mensaje de error.
[ @key = ] N'key'
Clave que se va a establecer. @key es sysname sin valor predeterminado. El tamaño máximo de la clave es 128 bytes.
[ @value = ] 'valor'
Valor para la clave especificada.
@value es sql_variant, con un valor predeterminado de NULL. Si se establece un valor de NULL , se libera la memoria. El tamaño máximo es 8.000 bytes.
[ @read_only = ] read_only
Marca que indica si se puede cambiar la clave especificada en la conexión lógica.
@read_only es bit con un valor predeterminado de 0.
- Si
1es , el valor de la clave especificada no se puede volver a cambiar en esta conexión lógica. - Si
0es , se puede cambiar el valor.
Permisos
Cualquier usuario puede leer el contexto de la sesión.
Observaciones
Al igual que otros procedimientos almacenados, solo se pueden pasar literales y variables (no expresiones o llamadas de función) como parámetros.
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.
Puede supervisar el uso general de la memoria consultando sys.dm_os_memory_cache_counters de la siguiente manera:
SELECT *
FROM sys.dm_os_memory_cache_counters
WHERE type = 'CACHESTORE_SESSION_CONTEXT';
Ejemplos
A Establecer y devolver un contexto de sesión
En el ejemplo siguiente se muestra cómo establecer y, a continuación, devolver la clave de contexto de una sesión denominada language, con un valor de English.
EXECUTE 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 opcional de solo lectura.
EXECUTE sys.sp_set_session_context
@key = N'user_id',
@value = 4,
@read_only = 1;
B. Establecimiento y devolución de un identificador de correlación de cliente
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.
Establezca el valor .
EXECUTE sp_set_session_context 'client_correlation_id', '12323ad';Recupere el valor.
SELECT SESSION_CONTEXT(N'client_correlation_id');