SET CONTEXT_INFO (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Convenciones de sintaxis de Transact-SQL

Sintaxis

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

binary_str

Es una constante de tipo binary o una constante que se puede convertir de forma implícita a binary, para asociarla a la sesión o conexión actual.

@binary_var

Es una variable varbinary o binary que alberga un valor de contexto para asociarlo con la sesión o conexión actual.

Comentarios

Al igual que todas las instrucciones SET, SET CONTEXT_INFO afecta a la sesión actual. El modo preferido para recuperar la información de contexto para la sesión actual es utilizar la función CONTEXT_INFO. La información de contexto de sesión también se almacena en las context_info columnas de las siguientes vistas del sistema:

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (en desuso)

SET CONTEXT_INFO no se puede especificar en una función definida por el usuario. No se puede proporcionar un valor NULL a SET CONTEXT_INFO porque las vistas que contienen 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, debe incluir primero el resultado de la llamada de función en una variable binary o varbinary.

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.

Ejemplos

A Establecimiento de información de contexto mediante una constante

El ejemplo siguiente muestra SET CONTEXT_INFO estableciendo el valor y mostrando los resultados. sys.dm_exec_sessions La consulta requiere permisos SELECT y VIEW SERVER STATE, mientras que el uso de la función CONTEXT_INFO no.

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

B. Establecimiento de información de contexto mediante una función

El ejemplo siguiente muestra el uso del resultado de una función para establecer el valor de contexto, donde el valor de la función se debe colocar primero en una variable binary.

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