SET CONTEXT_INFO (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

Mengaitkan hingga 128 byte informasi biner dengan sesi atau koneksi saat ini.

Konvensi sintaks transact-SQL

Sintaks

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Argumen

binary_str

Adalah konstanta biner , atau konstanta yang secara implisit dapat dikonversi ke biner, untuk dikaitkan dengan sesi atau koneksi saat ini.

@binary_var

Adalah variabel varbinary atau biner yang menyimpan nilai konteks untuk dikaitkan dengan sesi atau koneksi saat ini.

Keterangan

Seperti semua SET Pernyataan, SET CONTEXT_INFO memengaruhi sesi saat ini. Cara yang lebih disukai untuk mengambil informasi konteks untuk sesi saat ini adalah dengan menggunakan fungsi tersebut CONTEXT_INFO . Informasi konteks sesi juga disimpan dalam context_info kolom dalam tampilan sistem berikut:

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (tidak digunakan lagi)

SET CONTEXT_INFO tidak dapat ditentukan dalam fungsi yang ditentukan pengguna. Anda tidak dapat menyediakan nilai NULL karena SET CONTEXT_INFO tampilan yang memegang nilai tidak mengizinkan nilai NULL.

SET CONTEXT_INFO tidak menerima ekspresi selain konstanta atau nama variabel. Untuk mengatur informasi konteks ke hasil panggilan fungsi, Anda harus terlebih dahulu menyertakan hasil panggilan fungsi dalam variabel biner atau varbinary .

Saat Anda mengeluarkan SETSET CONTEXT_INFO dalam prosedur atau pemicu tersimpan, tidak seperti dalam pernyataan lain SET , nilai baru yang ditetapkan untuk informasi konteks tetap ada setelah prosedur atau pemicu tersimpan selesai.

Contoh

J. Mengatur informasi konteks dengan menggunakan konstanta

Contoh berikut menunjukkan SET CONTEXT_INFO dengan mengatur nilai dan menampilkan hasilnya. Kueri sys.dm_exec_sessions memerlukan izin SELECT dan VIEW SERVER STATE, sedangkan menggunakan CONTEXT_INFO fungsi tidak.

SET CONTEXT_INFO 0x01010101;  
GO  
SELECT context_info   
FROM sys.dm_exec_sessions  
WHERE session_id = @@SPID;  
GO  

B. Mengatur informasi konteks dengan menggunakan fungsi

Contoh berikut menunjukkan penggunaan output fungsi untuk mengatur nilai konteks, di mana nilai dari fungsi harus terlebih dahulu ditempatkan dalam variabel biner .

DECLARE @BinVar varbinary(128);  
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) );  
SET CONTEXT_INFO @BinVar;  
  
SELECT CONTEXT_INFO() AS MyContextInfo;  
GO