sp_set_session_context (Transact-SQL)
S’applique à : point de terminaison d’analytique SQL Server 2016 (13.x) et ultérieur Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics SQL Analytics dans Microsoft Fabric Warehouse
Définit une paire clé-valeur dans le contexte de session.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
Arguments
[ @key = ] N’key'
Clé définie. @key est sysname sans valeur par défaut. La taille maximale de clé est de 128 octets.
[ @value = ] 'value'
Valeur de la clé spécifiée. @value est sql_variant, avec la valeur par défaut NULL
. La définition d’une valeur de libération de NULL
la mémoire. La taille maximale est de 8 000 octets.
[ @read_only = ] read_only
Indicateur indiquant si la clé spécifiée peut être modifiée sur la connexion logique. @read_only est bit avec une valeur par défaut .0
- Si
1
, la valeur de la clé spécifiée ne peut pas être modifiée à nouveau sur cette connexion logique. - Si
0
, la valeur peut être modifiée.
autorisations
Tout utilisateur peut définir le contexte pour sa session.
Notes
Comme les autres procédures stockées, seuls les littéraux et les variables (et non les expressions ou les appels de fonction) peuvent être passés en tant que paramètres.
La taille totale du contexte de session est limitée à 1 Mo. Si vous définissez une valeur qui entraîne le dépassement de cette limite, l’instruction échoue. Vous pouvez surveiller l’utilisation globale de la mémoire dans sys.dm_os_memory_objects (Transact-SQL).
Vous pouvez surveiller l’utilisation globale de la mémoire en interrogeant sys.dm_os_memory_cache_counters (Transact-SQL) comme suit :
SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';
Exemples
R. Définir et retourner un contexte de session
L’exemple suivant montre comment définir, puis retourner la clé de contexte d’une session nommée language
, avec la valeur .English
EXEC sys.sp_set_session_context @key = N'language', @value = 'English';
SELECT SESSION_CONTEXT(N'language');
L’exemple suivant illustre l’utilisation de l’indicateur facultatif en lecture seule.
EXEC sys.sp_set_session_context @key = N'user_id', @value = 4, @read_only = 1;
B. Définir et retourner un ID de corrélation client
L’exemple suivant montre comment définir et récupérer une clé de contexte de session nommée client_correlation_id
, avec une valeur de 12323ad
.
Définissez la valeur.
EXEC sp_set_session_context 'client_correlation_id', '12323ad';
Récupérez la valeur.
SELECT SESSION_CONTEXT(N'client_correlation_id');