Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में सत्र संदर्भ में कुंजी/मान जोड़े सेट करें (sp_set_session_context)

SQL सर्वर में, आप sp_set_session_context . का उपयोग कर सकते हैं सत्र संदर्भ में कुंजी/मान जोड़े सेट करने के लिए संग्रहीत कार्यविधि।

ये कुंजी/मान जोड़े तब तक आपके सत्र संदर्भ में बने रहते हैं जब तक कि SQL सर्वर से आपका कनेक्शन बंद नहीं हो जाता। आप इन मानों को अपने पूरे सत्र के दौरान संग्रहीत कार्यविधियों और अन्य T-SQL कोड में उपयोग कर सकते हैं।

सत्र स्थिति को बनाए रखने के लिए यह विधि पहली बार SQL सर्वर 2016 में पेश की गई थी। उस रिलीज़ से पहले, आपको SET CONTEXT_INFO का उपयोग करना होगा। , जो सत्र स्थिति को संग्रहीत करने का एक समान, लेकिन बहुत अधिक सीमित तरीका प्रदान करता है।

उदाहरण 1 - मान सेट करें

sp_set_session_context का उपयोग करने का तरीका दिखाने के लिए यहां एक उदाहरण दिया गया है कुंजी/मान युग्म सेट करने के लिए।

EXEC sp_set_session_context
  @key = N'user_id',
  @value = 15;

आप निम्न सिंटैक्स का भी उपयोग कर सकते हैं:

EXEC sp_set_session_context 'user_id', 15;

एक वैकल्पिक केवल-पढ़ने वाला ध्वज भी है जिसे आप सेट कर सकते हैं। उदाहरण के लिए नीचे देखें।

उदाहरण 2 - मान पढ़ें

आप SESSION_CONTEXT() . का उपयोग कर सकते हैं कुंजी के मान को पढ़ने के लिए कार्य करता है।

पिछले उदाहरण में मेरे द्वारा निर्धारित मान को पढ़ने का तरीका यहां दिया गया है।

SELECT SESSION_CONTEXT(N'user_id') AS user_id;

परिणाम:

+-----------+
| user_id   |
|-----------|
| 15        |
+-----------+

उदाहरण 3 - मान अपडेट करें

जब तक आपने इसे केवल-पढ़ने के लिए निर्दिष्ट नहीं किया है, तब तक आप मान को अपडेट कर सकते हैं।

EXEC sp_set_session_context 'user_id', 73;
SELECT SESSION_CONTEXT(N'user_id') AS user_id;

परिणाम:

+-----------+
| user_id   |
|-----------|
| 73        |
+-----------+

उदाहरण 4 - केवल-पढ़ने के लिए सेट करें

जैसा कि उल्लेख किया गया है, एक वैकल्पिक केवल-पढ़ने वाला ध्वज भी है जिसे आप सेट कर सकते हैं। 1 . का मान इसे केवल-पढ़ने के लिए, और 0 . के मान पर सेट करता है (डिफ़ॉल्ट) केवल पढ़ने के लिए नहीं है।

यदि आप इसे केवल-पढ़ने के लिए सेट करते हैं, तो आप SQL सर्वर को डिस्कनेक्ट और पुनः कनेक्ट किए बिना मान को अपडेट नहीं कर पाएंगे।

यहां केवल-पढ़ने के लिए ध्वज सेट करने का एक उदाहरण दिया गया है।

EXEC sp_set_session_context 
  @key = N'user_id', 
  @value = 15, 
  @read_only = 1;
SELECT SESSION_CONTEXT(N'user_id') AS user_id;

परिणाम:

+-----------+
| user_id   |
|-----------|
| 15        |
+-----------+

अब, मान को बदलने का प्रयास करते हैं:

EXEC sp_set_session_context 'user_id', 73;

परिणाम:

Msg 15664, Level 16, State 1, Line 1
Cannot set key 'user_id' in the session context. The key has been set as read_only for this session. 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर यूडीएफ में पैरामीटर के रूप में टेबल पास करें

  2. SQL सर्वर में अपरकेस को लोअरकेस में कैसे बदलें - LOWER ()

  3. SQL सर्वर में पंक्तियों को रैंक करने के तरीके:ROW_NUMBER (), RANK (), DENSE_RANK () और NTILE ()

  4. SQL सर्वर (T-SQL) में कॉलम का डेटा प्रकार कैसे बदलें

  5. SQL सर्वर सबक्वेरी ने 1 से अधिक मान लौटाए। इसकी अनुमति नहीं है जब सबक्वेरी इस प्रकार है =, !=, <, <=,>,>=