Aracılığıyla paylaş


sp_set_session_context (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Azure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsSQL analiz uç noktası Microsoft Fabric'teki Microsoft FabricSQL veritabanında Microsoft Fabric'te

Oturum bağlamında bir anahtar-değer çifti ayarlar.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Arguments

Önemli

Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.

[ @key = ] N'key'

Ayarlanan anahtar. @key , varsayılan olmayan sysname'dir . En büyük anahtar boyutu 128 bayttır.

[ @value = ] 'değer'

Belirtilen anahtarın değeri. @value, varsayılan olarak NULL. değerinin NULL ayarlanması belleği serbest bırakır. En büyük boyut 8.000 bayttır.

[ @read_only = ] read_only

Belirtilen anahtarın mantıksal bağlantıda değiştirilip değiştirilemeyeceğini gösteren bir bayrak. @read_only varsayılan değeriyle bittir0.

  • ise 1, belirtilen anahtarın değeri bu mantıksal bağlantıda yeniden değiştirilemez.
  • ise 0, değer değiştirilebilir.

Permissions

Herhangi bir kullanıcı oturumu için bir oturum bağlamı ayarlayabilir.

Açıklamalar

Diğer saklı yordamlar gibi yalnızca değişmez değerler ve değişkenler (ifadeler veya işlev çağrıları değil) parametre olarak geçirilebilir.

Oturum bağlamının toplam boyutu 1 MB ile sınırlıdır. Bu sınırın aşılması için neden olan bir değer ayarlarsanız, deyimi başarısız olur. sys.dm_os_memory_objects genel bellek kullanımını izleyebilirsiniz.

sys.dm_os_memory_cache_counters şu şekilde sorgulayarak genel bellek kullanımını izleyebilirsiniz:

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

Örnekler

A. Oturum bağlamı ayarlama ve döndürme

Aşağıdaki örnekte, değerini içeren adlı languagebir oturumun bağlam anahtarının nasıl ayarlanacağı ve döndürüleceği gösterilmektedir English.

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

SELECT SESSION_CONTEXT(N'language');

Aşağıdaki örnekte isteğe bağlı salt okunur bayrağının kullanımı gösterilmektedir.

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

B. İstemci bağıntı kimliğini ayarlama ve döndürme

Aşağıdaki örnekte, değerine sahip adlı client_correlation_idbir oturum bağlam anahtarını ayarlama ve alma gösterilmektedir 12323ad.

  1. Değeri ayarlayın.

    EXECUTE sp_set_session_context 'client_correlation_id', '12323ad';
    
  2. Değeri alın.

    SELECT SESSION_CONTEXT(N'client_correlation_id');