Compartir a través de


SESSION_CONTEXT (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento de Microsoft Fabric

Devuelve el valor de la clave especificada en el contexto de la sesión actual. El valor se establece con el procedimiento sp_set_session_context (Transact-SQL).

Convenciones de sintaxis de Transact-SQL

Sintaxis

SESSION_CONTEXT(N'key')  

Argumentos

'key'
Clave (de tipo sysname) del valor que se va a recuperar.

Tipo de valor devuelto

sql_variant

Valor devuelto

Valor asociado con la clave especificada en el contexto de la sesión, o NULL si no se ha establecido ningún valor para esa clave.

Permisos

Cualquier usuario puede leer el contexto de la sesión.

Observaciones

El comportamiento de MARS en SESSION_CONTEXT es similar al de CONTEXT_INFO. Si un lote MARS establece un par clave-valor, el nuevo valor no se devolverá en otros lotes MARS en la misma conexión, a menos que dichos lotes se inicien después de que el lote que estableció el nuevo valor se haya completado. Si hay varios lotes MARS activos en una conexión, los valores no se pueden establecer en “read_only”. Esto evita que se produzcan condiciones de carrera y no determinismo sobre qué valor “gana”.

Ejemplos

En el siguiente ejemplo, el valor de contexto de la sesión de la clave user_id se establece en 4 y, después, se usa la función SESSION_CONTEXT para recuperarlo.

EXEC sp_set_session_context 'user_id', 4;  
SELECT SESSION_CONTEXT(N'user_id');  

Consulte también

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