sp_set_session_context (T-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceTitik akhir analitik Azure Synapse AnalyticsSQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengatur pasangan kunci-nilai dalam konteks sesi.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

[ @key = ] N'key'

Kunci yang sedang diatur. @key adalah sysname tanpa default. Ukuran kunci maksimum adalah 128 byte.

[ @value = ] 'nilai'

Nilai untuk kunci yang ditentukan. @value sql_variant, dengan default NULL. Mengatur nilai NULL membebaskan memori. Ukuran maksimum adalah 8.000 byte.

[ @read_only = ] read_only

Bendera yang menunjukkan apakah kunci yang ditentukan dapat diubah pada koneksi logis. @read_only sedikit dengan default 0.

  • Jika 1, nilai untuk kunci yang ditentukan tidak dapat diubah lagi pada koneksi logis ini.
  • Jika 0, nilai dapat diubah.

Izin

Setiap pengguna dapat mengatur konteks sesi untuk sesi mereka.

Keterangan

Seperti prosedur tersimpan lainnya, hanya literal dan variabel (bukan ekspresi atau panggilan fungsi) yang dapat diteruskan sebagai parameter.

Ukuran total konteks sesi dibatasi hingga 1 MB. Jika Anda menetapkan nilai yang menyebabkan batas ini terlampaui, pernyataan gagal. Anda dapat memantau penggunaan memori secara keseluruhan di sys.dm_os_memory_objects (Transact-SQL).

Anda dapat memantau penggunaan memori secara keseluruhan dengan mengkueri sys.dm_os_memory_cache_counters (Transact-SQL) sebagai berikut:

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

Contoh

J. Mengatur dan mengembalikan konteks sesi

Contoh berikut menunjukkan cara mengatur lalu mengembalikan kunci konteks sesi bernama language, dengan nilai English.

EXEC sys.sp_set_session_context @key = N'language', @value = 'English';
SELECT SESSION_CONTEXT(N'language');

Contoh berikut menunjukkan penggunaan bendera baca-saja opsional.

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

B. Mengatur dan mengembalikan ID korelasi klien

Contoh berikut menunjukkan cara mengatur dan mengambil kunci konteks sesi bernama client_correlation_id, dengan nilai 12323ad.

  1. Atur nilai .

    EXEC sp_set_session_context 'client_correlation_id', '12323ad';
    
  2. Ambil nilainya.

    SELECT SESSION_CONTEXT(N'client_correlation_id');