Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL Analytics-slutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
SQL Database i Microsoft Fabric
Returnerar värdet för den angivna nyckeln i den aktuella sessionskontexten. Värdet anges med hjälp av proceduren sp_set_session_context .
Transact-SQL syntaxkonventioner
Syntax
SESSION_CONTEXT(N'key')
Argumentpunkter
"nyckel"
Nyckeln för det värde som hämtas. nyckeln är sysname.
Returtyper
sql_variant
Returvärde
Värdet som är associerat med den angivna nyckeln i sessionskontexten, eller NULL om inget värde har angetts för den nyckeln.
Behörigheter
Alla användare kan läsa sessionskontexten för sin session.
Anmärkningar
MARS-beteendet för SESSION_CONTEXTliknar det för CONTEXT_INFO. Om en MARS-batch anger ett nyckel/värde-par returneras inte det nya värdet i andra MARS-batchar på samma anslutning, såvida de inte startade efter att batchen som angav det nya värdet har slutförts. Om flera MARS-batchar är aktiva på en anslutning kan värden inte anges som read_only. Detta förhindrar konkurrensförhållanden och nondeterminism om vilket värde som vinner.
Exempel
Följande enkla exempel anger sessionskontextvärdet för nyckeln user_id till 4 och använder SESSION_CONTEXT sedan funktionen för att hämta värdet.
EXECUTE sp_set_session_context 'user_id', 4;
SELECT SESSION_CONTEXT(N'user_id');
Kända problemområden
| Problematik | Identifierat datum | Läge | Datum åtgärdat |
|---|---|---|---|
Ett undantag för åtkomstöverträdelse (AV) kan inträffa med SESSION_CONTEXT funktionen under vissa villkor. Du kan stöta på AV-undantag eller felaktiga resultat när SESSION_CONTEXT funktionen körs inom en parallell körningsplan när sessionen återställs för återanvändning.En korrigering, som introducerades i SQL Server 2019 (15.x) CU 14 för att åtgärda ett fel resultatproblem med SESSION_CONTEXT inom parallella planer, konstaterades senare orsaka AV-undantag under vissa förhållanden.Du kan åtgärda det här problemet genom att aktivera spårningsflagga 11042 som startflagga, global flagga eller sessionsspårningsflagga. Den här spårningsflaggan tvingar SESSION_CONTEXT att köras seriellt, vilket hindrar den från att delta i parallella frågeplaner.Gäller för: SQL Server 2019 (15.x) CU 14 och senare versioner. |
Januari 2022 | Har lösning |