SET CONTEXT_INFO (Transact-SQL)

 

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)nonAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse

Associe jusqu'à 128 octets d'informations binaires à la session ou à la connexion actuelle.

S’applique à: SQL Server (SQL Server 2008 jusqu’à version actuelle).

Topic link icon Conventions de la syntaxe Transact-SQL

  
SET CONTEXT_INFO { binary_str | @binary_var }  

binary_str
Est un binaire constante ou une constante qui est implicitement convertible en binaire, à associer à la connexion ou la session active.

@binary_var
Est un varbinary ou binaire variable contenant une valeur de contexte à associer à la connexion ou la session active.

La méthode privilégiée pour récupérer les informations de contexte pour la session actuelle consiste à utiliser la fonction CONTEXT_INFO. Informations de contexte de session sont également stockées dans le context_info colonnes dans les vues système suivantes :

  • Sys.dm_exec_requests

  • Sys.dm_exec_sessions

  • Sys.sysprocesses

SET CONTEXT_INFO ne peut pas être spécifié dans une fonction définie par l'utilisateur. Vous ne pouvez pas fournir une valeur NULL dans SET CONTEXT_INFO, car les vues contenant les valeurs n'autorisent pas ce type de valeurs.

SET CONTEXT_INFO n'accepte pas les expressions autres que les constantes ou les noms de variables. Pour définir les informations de contexte pour le résultat d’un appel de fonction, vous devez d’abord inclure le résultat de l’appel de fonction dans une binaire ou varbinary variable.

Lorsque vous spécifiez SET CONTEXT_INFO dans une procédure stockée ou un déclencheur, contrairement aux autres instructions SET, la nouvelle valeur définie pour les informations de contexte est conservée à l'issue de l'exécution de la procédure stockée ou du déclencheur.

A. Définition des informations de contexte à l'aide d'une constante

L'exemple ci-dessous illustre SET CONTEXT_INFO par la définition de la valeur et l'affichage des résultats. Notez que l'interrogation de sys.dm_exec_sessions nécessite les autorisations SELECT et VIEW SERVER STATE, ce qui n'est pas le cas pour la fonction CONTEXT_INFO.

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

B. Définition des informations de contexte à l'aide d'une fonction

L’exemple suivant illustre l’utilisation de la sortie d’une fonction pour définir la valeur de contexte, lorsque la valeur de la fonction doit tout d’abord être placée dans un binaire variable.

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

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

Ajouts de la communauté

AJOUTER
Afficher: