Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2016 (13.x) och senare
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-analysslutpunkt i Microsoft Fabric
Warehouse 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_CONTEXT
liknar 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 11024 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 |