Megosztás a következőn keresztül:


sp_set_session_context (Transact-SQL)

A következőkre vonatkozik: Az SQL Server 2016 (13.x) és újabb verziói Az Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL Analytics végpontja a Microsoft FabricWarehouse-ban a Microsoft FabricSQL Database-ben a Microsoft Fabricben

Kulcs-érték pár beállítása a munkamenet-környezetben.

Transact-SQL szintaxis konvenciói

Szintaxis

sp_set_session_context
    [ @key = ] N'key'
    , [ @value = ] 'value'
    [ , [ @read_only = ] read_only ]
[ ; ]

Érvek

Fontos

A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.

[ @key = ] N'kulcs'

A kulcs be van állítva. @key alapértelmezés nélkül sysname. A kulcs maximális mérete 128 bájt.

[ @value = ] 'érték'

A megadott kulcs értéke. @value az alapértelmezett NULL. A NULL értékének beállítása felszabadítja a memóriát. A maximális méret 8000 bájt.

[ @read_only = ] read_only

Egy jelző, amely jelzi, hogy a megadott kulcs módosítható-e a logikai kapcsolaton. @read_onlybit alapértelmezett 0.

  • Ha 1, a megadott kulcs értéke nem módosítható újra ezen a logikai kapcsolaton.
  • Ha 0, az érték módosítható.

Engedélyek

Bármely felhasználó beállíthat egy munkamenet-környezetet a munkamenethez.

Megjegyzések

Más tárolt eljárásokhoz hasonlóan csak a konstansok és változók (nem kifejezések vagy függvényhívások) továbbíthatók paraméterként.

A munkamenet-környezet teljes mérete legfeljebb 1 MB lehet. Ha olyan értéket állít be, amely miatt túllépi ezt a korlátot, az utasítás meghiúsul. A teljes memóriahasználatot sys.dm_os_memory_objectsfigyelheti.

A teljes memóriahasználatot az alábbi sys.dm_os_memory_cache_counters lekérdezésével figyelheti:

SELECT *
FROM sys.dm_os_memory_cache_counters
WHERE type = 'CACHESTORE_SESSION_CONTEXT';

Példák

Egy. Munkamenet-környezet beállítása és visszaadása

Az alábbi példa bemutatja, hogyan állíthatja be és adja vissza egy munkamenet languagenevű környezeti kulcsát Englishértékkel.

EXECUTE sys.sp_set_session_context
    @key = N'language',
    @value = 'English';

SELECT SESSION_CONTEXT(N'language');

Az alábbi példa a választható írásvédett jelző használatát mutatja be.

EXECUTE sys.sp_set_session_context
    @key = N'user_id',
    @value = 4,
    @read_only = 1;

B. Ügyfél-korrelációs azonosító beállítása és visszaadása

Az alábbi példa bemutatja, hogyan állíthat be és kér le egy client_correlation_idnevű munkamenet-környezetkulcsot 12323adértékkel.

  1. Állítsa be az értéket.

    EXECUTE sp_set_session_context 'client_correlation_id', '12323ad';
    
  2. Kérje le az értéket.

    SELECT SESSION_CONTEXT(N'client_correlation_id');