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
Zwraca wartość określonego klucza w bieżącym kontekście sesji. Wartość jest ustawiana przy użyciu procedury sp_set_session_context .
Transact-SQL konwencje składni
Składnia
SESSION_CONTEXT(N'key')
Argumenty (w programowaniu)
"klucz"
Klucz pobieranej wartości. klucz to sysname.
Typy zwracane
sql_variant
Wartość zwracana
Wartość skojarzona z określonym kluczem w kontekście sesji lub NULL jeśli żadna wartość nie jest ustawiona dla tego klucza.
Uprawnienia
Każdy użytkownik może odczytać kontekst sesji dla swojej sesji.
Uwagi
Zachowanie mars dla SESSION_CONTEXTparametru " jest podobne do zachowania CONTEXT_INFO. Jeśli partia MARS ustawia parę klucz-wartość, nowa wartość nie jest zwracana w innych partiach MARS w tym samym połączeniu, chyba że zostały uruchomione po partii, która ustawiła nową wartość ukończoną. Jeśli wiele partii MARS jest aktywnych w połączeniu, wartości nie można ustawić jako read_only. Zapobiega to warunkom wyścigu i nieokreślonościom o tym, która wartość wygrywa.
Przykłady
Poniższy prosty przykład ustawia wartość kontekstu sesji dla klucza user_id na 4, a następnie używa SESSION_CONTEXT funkcji do pobrania wartości.
EXECUTE sp_set_session_context 'user_id', 4;
SELECT SESSION_CONTEXT(N'user_id');
Znane problemy
| Problematyka | Data odnalezienia | Stan | Data rozwiązania |
|---|---|---|---|
Wyjątek naruszenia dostępu (AV) może wystąpić z funkcją SESSION_CONTEXT w określonych warunkach. Mogą wystąpić wyjątki av lub nieprawidłowe wyniki, gdy SESSION_CONTEXT funkcja działa w ramach równoległego planu wykonywania, gdy sesja zostanie zresetowana do ponownego użycia.Poprawka, która została wprowadzona w programie SQL Server 2019 (15.x) CU 14 w celu rozwiązania problemu z nieprawidłowymi wynikami w SESSION_CONTEXT ramach planów równoległych, została później znaleziona w celu spowodowania wyjątków av w określonych warunkach.Aby rozwiązać ten problem, możesz włączyć flagę śledzenia 11042 jako flagę uruchamiania, globalnego lub śledzenia sesji. Ta flaga śledzenia wymusza SESSION_CONTEXT wykonanie serializacji, uniemożliwiając jej uczestnictwo w równoległych planach zapytań.Dotyczy: SQL Server 2019 (15.x) CU 14 i nowsze wersje. |
Styczeń 2022 | Ma obejście |