User Instance
का उपयोग करना इसका मतलब है कि SQL सर्वर आपके प्रोग्राम द्वारा उपयोग के लिए उस डेटाबेस फ़ाइल की एक विशेष प्रति बना रहा है। यदि आपके पास एक ही कनेक्शन स्ट्रिंग का उपयोग करने वाले दो अलग-अलग प्रोग्राम हैं, तो उन्हें डेटाबेस की दो पूरी तरह से अलग प्रतियां मिलती हैं। यह एक बहुत की ओर ले जाता है भ्रम की स्थिति, क्योंकि लोग अपने प्रोग्राम के साथ डेटा अपडेट करने का परीक्षण करेंगे, फिर प्रबंधन स्टूडियो में अपने डेटाबेस की एक अलग कॉपी से कनेक्ट होंगे, और शिकायत करेंगे कि उनका अपडेट काम नहीं कर रहा है। यह उन्हें गलत समस्या का निवारण करने की कोशिश कर रहे जंगली हंस पीछा चरणों की एक त्रुटिपूर्ण श्रृंखला के माध्यम से भेजता है।
यह लेख इस सुविधा का उपयोग करने के तरीके के बारे में अधिक गहराई में जाता है, लेकिन सबसे पहले ध्यान दें:User Instance
सुविधा का बहिष्कार कर दिया गया है . SQL सर्वर 2012 में, पसंदीदा विकल्प हैं (इस क्रम में, IMHO):
-
SQL सर्वर के वास्तविक उदाहरण के लिए अपना डेटाबेस बनाएं या संलग्न करें। तब आपकी कनेक्शन स्ट्रिंग को इंस्टेंस नाम, डेटाबेस नाम और क्रेडेंशियल निर्दिष्ट करने की आवश्यकता होगी। कोई मिश्रण नहीं होगा क्योंकि प्रबंधन स्टूडियो, विजुअल स्टूडियो और आपके प्रोग्राम सभी डेटाबेस की एक प्रति से जुड़ रहे होंगे।
-
SqlLocalDb
का उपयोग करें स्थानीय विकास के लिए। मेरा मानना है कि मैंने आपको कल इस लेख की ओर इशारा किया था:"एसक्यूएल सर्वर 2012 एक्सप्रेस लोकलडीबी के साथ शुरुआत करना।" - SQL सर्वर कॉम्पैक्ट का उपयोग करें। मुझे यह विकल्प कम से कम पसंद है क्योंकि कार्यक्षमता और वाक्यविन्यास समान नहीं है - इसलिए यह जरूरी नहीं है कि आपको वह सभी कार्यक्षमताएं प्रदान करें जिन्हें आप अंततः तैनात करना चाहते हैं। कॉम्पैक्ट संस्करण को भी हटा दिया गया है, इसलिए वह है।
बेशक यदि आप एक संस्करण का उपयोग कर रहे हैं AttachDbFileName
का उपयोग करना। ।
संपादित करें: मैंने इसके बारे में यहां ब्लॉग किया है:
- बुरी आदतें:अटैचडीबीफाइलनाम का उपयोग करना