SET CONTEXT_INFO (Transact-SQL)

 

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)noBase de datos SQL de AzurenoAlmacenamiento de datos SQL de Azure noAlmacenamiento de datos paralelos

Asocia hasta 128 bytes de información binaria con la sesión o la conexión actual.

Se aplica a: SQL Server (desdeSQL Server 2008 hasta la versión actual).

Topic link icon Convenciones de sintaxis de Transact-SQL

  
SET CONTEXT_INFO { binary_str | @binary_var }  

binary_str
Es un binario constante o una constante que es implícitamente convertible a binario, para asociarla a la sesión o conexión actual.

@binary_var
Es un varbinary o binario variable que contiene un valor de contexto para asociarlo con la sesión o conexión actual.

El modo preferido para recuperar la información de contexto para la sesión actual es utilizar la función CONTEXT_INFO. Información de contexto de sesión se almacena también en el context_info columnas en las vistas del sistema siguientes:

  • Sys.dm_exec_requests

  • Sys.dm_exec_sessions

  • Sys.sysprocesses

SET CONTEXT_INFO no se puede especificar en una función definida por el usuario. No puede proporcionar un valor NULL para SET CONTEXT_INFO porque las vistas que albergan los valores no permiten valores NULL.

SET CONTEXT_INFO no acepta expresiones distintas de nombres de constantes o variables. Para establecer la información de contexto en el resultado de una llamada de función, se debe incluir el resultado de la llamada de función en un binario o varbinary variable.

Cuando emite SET CONTEXT_INFO en un procedimiento almacenado o un desencadenador, a diferencia de otras instrucciones SET, los nuevos valores de la información de contexto persisten después de completarse el desencadenador o el procedimiento almacenado.

A. Establecer información de contexto utilizando una constante

El ejemplo siguiente muestra SET CONTEXT_INFO estableciendo el valor y mostrando los resultados. Tenga en cuenta que para consultar sys.dm_exec_sessions se requieren permisos SELECT y VIEW SERVER STATE, mientras que el uso de la función CONTEXT_INFO no los requiere.

SET CONTEXT_INFO 0x01010101;  
GO  
SELECT context_info   
FROM sys.dm_exec_sessions  
WHERE session_id = @@SPID;  
GO  

B. Establecer información de contexto utilizando una función

En el ejemplo siguiente se muestra cómo utilizar el resultado de una función para establecer el valor de contexto, donde el valor de la función se debe colocar en primer lugar en un binario variable.

DECLARE @BinVar varbinary(128);  
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) );  
SET CONTEXT_INFO @BinVar;  
  
SELECT CONTEXT_INFO() AS MyContextInfo;  
GO  

Instrucciones SET (Transact-SQL)
Sys.dm_exec_requests (Transact-SQL)
Sys.dm_exec_sessions (Transact-SQL)
CONTEXT_INFO (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: