Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
— punkt końcowy analizy SQL w usłudze Microsoft Fabric
Warehouse w
bazie danych Microsoft Fabric SQL Database w usłudze Microsoft Fabric
Ustawia parę klucz-wartość w kontekście sesji.
Transact-SQL konwencje składni
Składnia
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
Argumenty
Ważny
Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.
[ @key = ] N'klucz"
Ustawiany klucz. @key jest nazwa_systemu bez wartości domyślnej. Maksymalny rozmiar klucza to 128 bajtów.
[ @value = ] 'wartość'
Wartość określonego klucza.
@value jest sql_variantz wartością domyślną NULL. Ustawienie wartości NULL zwalnia pamięć. Maksymalny rozmiar to 8000 bajtów.
[ @read_only = ] read_only
Flaga wskazująca, czy określony klucz można zmienić w połączeniu logicznym.
@read_only jest bitową z wartością domyślną 0.
- Jeśli
1, wartość określonego klucza nie może zostać ponownie zmieniona w tym połączeniu logicznym. - Jeśli
0, można zmienić wartość.
Uprawnienia
Każdy użytkownik może ustawić kontekst sesji dla swojej sesji.
Uwagi
Podobnie jak inne procedury składowane, jako parametry mogą być przekazywane tylko literały i zmienne (nie wyrażenia ani wywołania funkcji).
Całkowity rozmiar kontekstu sesji jest ograniczony do 1 MB. Jeśli ustawisz wartość, która spowoduje przekroczenie tego limitu, instrukcja zakończy się niepowodzeniem. Ogólne użycie pamięci można monitorować w sys.dm_os_memory_objects.
Ogólne użycie pamięci można monitorować, wykonując zapytanie sys.dm_os_memory_cache_counters w następujący sposób:
SELECT *
FROM sys.dm_os_memory_cache_counters
WHERE type = 'CACHESTORE_SESSION_CONTEXT';
Przykłady
A. Ustawianie i zwracanie kontekstu sesji
W poniższym przykładzie pokazano, jak ustawić, a następnie zwrócić klucz kontekstu sesji o nazwie language, z wartością English.
EXECUTE sys.sp_set_session_context
@key = N'language',
@value = 'English';
SELECT SESSION_CONTEXT(N'language');
W poniższym przykładzie pokazano użycie opcjonalnej flagi tylko do odczytu.
EXECUTE sys.sp_set_session_context
@key = N'user_id',
@value = 4,
@read_only = 1;
B. Ustawianie i zwracanie identyfikatora korelacji klienta
W poniższym przykładzie pokazano, jak ustawić i pobrać klucz kontekstu sesji o nazwie client_correlation_idz wartością 12323ad.
Ustaw wartość.
EXECUTE sp_set_session_context 'client_correlation_id', '12323ad';Pobierz wartość.
SELECT SESSION_CONTEXT(N'client_correlation_id');