sp_set_session_context (Transact-SQL)
platí pro: SQL Server 2016 (13.x) a novější
Azure SQL Database
azure SQL Managed Instance
koncový bod azure Synapse Analytics
SQL Analytics v Microsoft Fabric
Warehouse v Microsoft Fabric
Nastaví pár klíč-hodnota v kontextu relace.
Syntax
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
Argumenty
Důležitý
Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.
[ @key = ] Klíč N''
Klíč je nastavený. @key sysname bez výchozího nastavení. Maximální velikost klíče je 128 bajtů.
[ @value = ] 'hodnota'
Hodnota zadaného klíče.
@value je sql_variants výchozím NULL
. Nastavení hodnoty NULL
uvolní paměť. Maximální velikost je 8 000 bajtů.
[ @read_only = ] read_only
Příznak označující, jestli se zadaný klíč dá změnit v logickém připojení.
@read_only je bit s výchozím 0
.
- Pokud
1
, hodnota zadaného klíče se u tohoto logického připojení nedá znovu změnit. - Pokud
0
, můžete hodnotu změnit.
Dovolení
Každý uživatel může pro svoji relaci nastavit kontext relace.
Poznámky
Stejně jako jiné uložené procedury lze jako parametry předat pouze literály a proměnné (nikoli výrazy nebo volání funkce).
Celková velikost kontextu relace je omezená na 1 MB. Pokud nastavíte hodnotu, která způsobí překročení tohoto limitu, příkaz selže. V sys.dm_os_memory_objectsmůžete monitorovat celkové využití paměti .
Celkové využití paměti můžete monitorovat dotazováním sys.dm_os_memory_cache_counters následujícím způsobem:
SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';
Příklady
A. Nastavení a vrácení kontextu relace
Následující příklad ukazuje, jak nastavit a potom vrátit kontextový klíč relace s názvem language
, s hodnotou English
.
EXEC sys.sp_set_session_context @key = N'language', @value = 'English';
SELECT SESSION_CONTEXT(N'language');
Následující příklad ukazuje použití volitelného příznaku jen pro čtení.
EXEC sys.sp_set_session_context @key = N'user_id', @value = 4, @read_only = 1;
B. Nastavení a vrácení ID korelace klienta
Následující příklad ukazuje, jak nastavit a načíst kontextový klíč relace s názvem client_correlation_id
, s hodnotou 12323ad
.
Nastavte hodnotu.
EXEC sp_set_session_context 'client_correlation_id', '12323ad';
Načtěte hodnotu.
SELECT SESSION_CONTEXT(N'client_correlation_id');
Související obsah
- CURRENT_TRANSACTION_ID (Transact-SQL)
- SESSION_CONTEXT (Transact-SQL)
- zabezpečení na úrovni řádků
- CONTEXT_INFO (Transact-SQL)
- SET CONTEXT_INFO (Transact-SQL)