Aracılığıyla paylaş


SET CONTEXT_INFO (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Mevcut oturum veya bağlantıyla 128 bayta kadar ikili bilgi ilişkilendirilir.

Transact-SQL söz dizimi kuralları

Sözdizimi

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Arguments

binary_str

Mevcut oturum veya bağlantıyla ilişkilendirilmek için örtük olarak ikili sabittir , ya da örtük olarak ikili sabittir.

@binary_var

Mevcut oturum veya bağlantıyla ilişkilendirilecek bir bağlam değeri taşıyan varbiner veya ikili değişkendir.

Açıklamalar

Tüm SET ifadeleri gibi, SET CONTEXT_INFO mevcut oturumu etkiler. Mevcut oturum için bağlam bilgisini elde etmenin tercih edilen yolu CONTEXT_INFO fonksiyonunu kullanmaktır. Oturum bağlam bilgisi ayrıca aşağıdaki sistem görünümlerindeki sütunlarda da saklanır context_info :

  • sys.dm_exec_requests
  • sys.dm_exec_sessions
  • sys.sysprocesses (kullanım dışı)

SET CONTEXT_INFO kullanıcı tanımlı bir fonksiyonda belirtilemez. SET CONTEXT_INFO'a NULL değer sağlayamazsınız çünkü değerleri tutan görünümler NULL değerlere izin vermez.

SET CONTEXT_INFO, sabitler veya değişken isimleri dışında ifadeleri kabul etmez. Bağlam bilgisini bir fonksiyon çağrısının sonucuna ayarlamak için, önce fonksiyon çağrısının sonucunu ikili veya varbiner değişkene dahil etmelisiniz.

Bir depolanmış prosedürde veya tetikleyicide SET CONTEXT_INFO verdiğinizde, diğer SET ifadelerinden farklı olarak, bağlam bilgisi için yeni değer kümesi, saklanan prosedür veya tetikleyici tamamlandıktan sonra da devam eder.

Örnekler

A. Bağlam bilgisini sabit kullanarak ayarlayın

Aşağıdaki örnek, değerleri ayarlayıp sonuçları göstererek göstermektedir SET CONTEXT_INFO . Sorgulama sys.dm_exec_sessions için SELECT ve VIEW SERVER STATE izinleri gerekirken, CONTEXT_INFO fonksiyonunu kullanmak bunu gerektirmez.

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

B. Bir fonksiyon kullanarak bağlam bilgisini ayar

Aşağıdaki örnek, bir fonksiyonun çıktısının bağlam değerini ayarlamak için kullanıldığını gösterir; burada fonksiyonun değeri önce ikili bir değişkene yerleştirilmelidir.

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