SET CONTEXT_INFO (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Konvensi sintaks transact-SQL

Sintaksis

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

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 Pernyataan SET, SET CONTEXT_INFO memengaruhi sesi saat ini. Cara yang disukai untuk mengambil informasi konteks untuk sesi saat ini adalah dengan menggunakan fungsi 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 ke SET CONTEXT_INFO karena tampilan yang menyimpan nilai tidak memungkinkan 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 SET CONTEXT_INFO dalam prosedur atau pemicu tersimpan, tidak seperti dalam pernyataan SET lainnya, 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 fungsi CONTEXT_INFO 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