66

प्रत्येक SQL सर्वर कनेक्शन स्ट्रिंग जो मैंने कभी देखा है, ऐसा कुछ दिखता है:SQL सर्वर कनेक्शन स्ट्रिंग में "प्रारंभिक कैटलॉग" का बिंदु क्या है?

Data Source=MyLocalSqlServerInstance;Initial Catalog=My Nifty Database; 
    Integrated Security=SSPI; 

क्या मुझे प्रारंभिक कैटलॉग सेटिंग की आवश्यकता है? (जाहिर है, क्योंकि जिस ऐप पर मैं काम कर रहा हूं उसके बिना काम करने लगता है।) Xzx14

ठीक है, तो, इसके लिए क्या है?

+24

हमम, मैंने अभी पाया है कि मेरा ऐप मेरी सभी बनाई गई टेबल मास्टर में रखता है। उफ़। मैंने अभी अपने प्रश्न का उत्तर सीखा होगा। –

उत्तर

38

तो उपयोगकर्ता है कि कनेक्शन स्ट्रिंग एक से अधिक डेटाबेस आप डेटाबेस आप कनेक्शन स्ट्रिंग से कनेक्ट करना चाहते निर्दिष्ट करने के लिए पहुँच नहीं है। यदि आपके उपयोगकर्ता के पास केवल एक डेटाबेस उपलब्ध है तो आप सही हैं कि इससे कोई फर्क नहीं पड़ता। लेकिन यह आपके कनेक्शन स्ट्रिंग में रखना अच्छा अभ्यास है।

+7

बिल्कुल सही नहीं है। लॉगिन में डिफ़ॉल्ट डेटाबेस पर अनुमति नहीं हो सकती है। इसलिए, आपको कनेक्शन – gbn

+0

पर डेटाबेस संदर्भ को बदलने की आवश्यकता है यदि आप -ConnectionStringName पैरामीटर का उपयोग करके निर्दिष्ट करते हैं तो यह इकाई फ्रेमवर्क के लिए आवश्यक है, इसलिए निश्चित रूप से अच्छी प्रैक्टिस लेकिन कभी-कभी आवश्यक हो! –

29

यह कनेक्ट होने पर डेटा स्रोत के initial database है।

संपादित स्पष्टता के लिए:

आप अपने एसक्यूएल सर्वर उदाहरण में विभिन्न डेटाबेस है और आप डिफ़ॉल्ट डेटाबेस का उपयोग नहीं करना चाहते, तो आप किसी तरह से जो एक का उपयोग करने जा रहे हैं निर्दिष्ट करने की आवश्यकता।

+1

पहला भाग सही है। दूसरा भाग सही नहीं है। जब आप खाता बनाते हैं तो इसे एक डिफ़ॉल्ट डेटाबेस असाइन किया जाता है जिसका उपयोग तब किया जाएगा जब प्रारंभिक कैटलॉग निर्दिष्ट नहीं है। यह आम तौर पर मास्टर के लिए डिफ़ॉल्ट (कुछ अज्ञात कारण के लिए)। – GrayWizardx

+0

जब मैं "डिफ़ॉल्ट रूप से" कहता हूं तो मेरा मतलब यह है कि जब आप अपने ऑब्जेक्ट नामों में डेटाबेस को अर्हता प्राप्त नहीं कर रहे हैं। किसी भी मामले में, मैंने अपना जवाब स्पष्ट कर दिया है। –

8

एक प्रारंभिक कैटलॉग सेट करने से आप डेटाबेस सेट कर सकते हैं कि उस कनेक्शन पर चलने वाले प्रश्न डिफ़ॉल्ट रूप से उपयोग करेंगे। यदि आप इसे किसी ऐसे सर्वर से कनेक्शन के लिए सेट नहीं करते हैं जिसमें एकाधिक डेटाबेस मौजूद हैं, तो कई मामलों में आपको प्रत्येक क्वेरी में एक यूएसई स्टेटमेंट होना होगा ताकि स्पष्ट रूप से घोषित किया जा सके कि आप किस डेटाबेस को क्वेरी चलाने की कोशिश कर रहे हैं। प्रारंभिक कैटलॉग सेटिंग एक डिफ़ॉल्ट डेटाबेस को स्पष्ट रूप से घोषित करने का एक अच्छा तरीका है।