SET CONTEXT_INFO (Transact-SQL)

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

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

SET CONTEXT_INFO { binary_str | @binary_var }

Arguments

  • binary_str
    Représente une constante binary ou une constante implicitement convertible en binary à associer à la session ou à la connexion actuelle.

  • **@**binary_var
    Représente une variable varbinary ou binary contenant une valeur de contexte à associer à la session ou à la connexion actuelle.

Notes

La méthode privilégiée pour récupérer les informations de contexte pour la session actuelle consiste à utiliser la fonction CONTEXT_INFO. Les informations relatives au contexte de la session sont stockées dans les colonnes context_info des 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 associées au résultat d'un appel de fonction, vous devez d'abord inclure le résultat de l'appel de la fonction dans une variable binary ou varbinary.

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.

Exemples

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 ci-dessous illustre l'utilisation du résultat d'une fonction pour définir la valeur de contexte, où la valeur de la fonction doit être placée d'abord dans une 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