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
Punto de conexión de análisis SQL en Microsoft Fabric
Almacenamiento de Microsoft Fabric
Devuelve el valor de la clave especificada en el contexto de la sesión actual. El valor se establece mediante el procedimiento sp_set_session_context .
Convenciones de sintaxis de Transact-SQL
Sintaxis
SESSION_CONTEXT(N'key')
Argumentos
'key'
Clave del valor que se va a recuperar. key es sysname.
Tipos de retorno
sql_variant
Valor devuelto
Valor asociado a la clave especificada en el contexto de sesión o NULL
si no se establece ningún valor para esa clave.
Permisos
Cualquier usuario puede leer el contexto de la sesión.
Observaciones
El comportamiento de MARS para SESSION_CONTEXT
" es similar al de CONTEXT_INFO
. Si un lote de MARS establece un par clave-valor, el nuevo valor no se devuelve en otros lotes de MARS en la misma conexión a menos que se inicien después del lote que establezca el nuevo valor completado. Si hay varios lotes de MARS activos en una conexión, los valores no se pueden establecer como read_only
. Esto evita las condiciones de carrera y el no determinismo sobre qué valor gana.
Ejemplos
En el ejemplo sencillo siguiente se establece el valor de contexto de sesión de la clave user_id
en 4 y, a continuación, se usa la SESSION_CONTEXT
función para recuperar el valor.
EXECUTE sp_set_session_context 'user_id', 4;
SELECT SESSION_CONTEXT(N'user_id');
Problemas conocidos
Cuestión | Fecha de detección | Estado | Fecha de resolución |
---|---|---|---|
Es posible que se produzca una excepción de infracción de acceso (AV) con la SESSION_CONTEXT función en determinadas condiciones. Es posible que encuentre excepciones de AV o resultados incorrectos cuando la SESSION_CONTEXT función se ejecute dentro de un plan de ejecución paralelo cuando se restablezca la sesión para su reutilización.Una corrección, que se introdujo en SQL Server 2019 (15.x) CU 14 para solucionar un problema de resultados incorrecto con SESSION_CONTEXT dentro de los planes paralelos, se encontró más adelante para provocar excepciones de AV en determinadas condiciones.Para mitigar este problema, puede habilitar la marca de seguimiento 11024 como marca de inicio, global o de seguimiento de sesión. Esta marca de seguimiento fuerza SESSION_CONTEXT a ejecutarse en serie, lo que impide que participe en planes de consulta paralelos.Se aplica a: SQL Server 2019 (15.x) CU 14 y versiones posteriores. |
Enero de 2022 | Tiene solución alternativa |