SQL सर्वर में, आप ORIGINAL_DB_NAME()
. का उपयोग कर सकते हैं डेटाबेस कनेक्शन स्ट्रिंग में उपयोगकर्ता द्वारा निर्दिष्ट डेटाबेस नाम वापस करने के लिए कार्य करता है।
इस फ़ंक्शन को DB_NAME()
. के साथ भ्रमित नहीं होना है फ़ंक्शन, जो या तो एक विशिष्ट डेटाबेस, या वर्तमान एक देता है।
जब आप पहली बार SQL सर्वर से कनेक्शन बनाते हैं, तो आपके पास प्रारंभिक डेटाबेस निर्दिष्ट करने का विकल्प होता है। उदाहरण के लिए, sqlcmd . जैसे कमांड लाइन इंटरफ़ेस का उपयोग करते समय , आप -d
. का उपयोग कर सकते हैं प्रारंभिक डेटाबेस निर्दिष्ट करने के लिए पैरामीटर। यदि आप इस पैरामीटर का उपयोग नहीं करते हैं, तो आपके लॉगिन का डिफ़ॉल्ट डेटाबेस प्रारंभिक डेटाबेस होगा।
एक बार जब आप कनेक्ट हो जाते हैं, तो आप किसी भिन्न डेटाबेस पर स्विच कर सकते हैं, लेकिन आपका मूल डेटाबेस हमेशा वही रहेगा। दूसरे शब्दों में, ORIGINAL_DB_NAME()
आपके पूरे सत्र में हमेशा वही डेटाबेस लौटाएगा, भले ही आप किसी भिन्न डेटाबेस पर स्विच करें।
उदाहरण 1 - मूल उपयोग
यहां एक बुनियादी उदाहरण दिया गया है।
SELECT ORIGINAL_DB_NAME() AS [Original Database];
परिणाम:
+---------------------+ | Original Database | |---------------------| | master | +---------------------+
उदाहरण 2 - विभिन्न कनेक्शन स्ट्रिंग्स
यह उदाहरण दर्शाता है कि ORIGINAL_DB_NAME()
. का आउटपुट कैसा है फ़ंक्शन कनेक्शन स्ट्रिंग द्वारा निर्धारित किया जाता है।
निम्नलिखित कनेक्शन स्ट्रिंग पर विचार करें:
mssql-cli -S localhost -U sa -P bigStrongPassword!!! -d Music
यहां, मैं mssql-cli . का उपयोग करता हूं SQL सर्वर से कनेक्ट करने के लिए कमांड लाइन टूल। जिस भाग में हम रुचि रखते हैं वह है -d Music
. यह निर्दिष्ट करता है कि प्रारंभिक डेटाबेस संगीत डेटाबेस होना चाहिए। दूसरे शब्दों में, SQL सर्वर से कनेक्ट होने के बाद, मेरा वर्तमान डेटाबेस संगीत होगा।
तो उस कोड को चलाने के बाद (और सफलतापूर्वक SQL सर्वर से कनेक्ट हो रहा है), मैं ORIGINAL_DB_NAME()
चला सकता हूं :
SELECT ORIGINAL_DB_NAME() AS [Original Database];
परिणाम:
+---------------------+ | Original Database | |---------------------| | Music | +---------------------+
अब, एक और कनेक्शन खोलते हैं, लेकिन इस बार मैं एक अलग डेटाबेस निर्दिष्ट करूंगा:
mssql-cli -S localhost -U sa -P bigStrongPassword!!! -d WideWorldImporters
अब ORIGINAL_DB_NAME()
चलाएं :
SELECT ORIGINAL_DB_NAME() AS [Original Database];
परिणाम:
+---------------------+ | Original Database | |---------------------| | WideWorldImporters | +---------------------+
उदाहरण 3 - डेटाबेस स्विच करें
यदि मैं किसी भिन्न डेटाबेस पर स्विच करता हूँ और कथन को फिर से चलाता हूँ तो क्या होता है:
USE Music; SELECT ORIGINAL_DB_NAME() AS [Original Database];
परिणाम:
Changed database context to 'Music'. +---------------------+ | Original Database | |---------------------| | WideWorldImporters | +---------------------+ (1 row affected)
मूल डेटाबेस वही रहता है।
DB_NAME()
. के साथ तुलना करने पर यह फिर से है समारोह:
USE Music; SELECT DB_NAME() AS [Current Database], ORIGINAL_DB_NAME() AS [Original Database];
परिणाम:
Changed database context to 'Music'. +--------------------+---------------------+ | Current Database | Original Database | |--------------------+---------------------| | Music | WideWorldImporters | +--------------------+---------------------+ (1 row affected)
उदाहरण 4 - डिफ़ॉल्ट डेटाबेस
यदि मैं कनेक्शन स्ट्रिंग में स्पष्ट रूप से डेटाबेस निर्दिष्ट नहीं करता तो क्या होता है:
mssql-cli -S localhost -U sa -P bigStrongPassword!!!
अब ORIGINAL_DB_NAME()
चलाएं :
SELECT ORIGINAL_DB_NAME() AS [Original Database];
परिणाम:
+---------------------+ | Original Database | |---------------------| | master | +---------------------+
इस मामले में, उस उपयोगकर्ता के लिए डिफ़ॉल्ट डेटाबेस का उपयोग किया जाता है।