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

अटैचडबफाइलनाम के साथ क्या समस्या है?

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

यह लेख इस सुविधा का उपयोग करने के तरीके के बारे में अधिक गहराई में जाता है, लेकिन सबसे पहले ध्यान दें:User Instance सुविधा का बहिष्कार कर दिया गया है . SQL सर्वर 2012 में, पसंदीदा विकल्प हैं (इस क्रम में, IMHO):

  1. SQL सर्वर के वास्तविक उदाहरण के लिए अपना डेटाबेस बनाएं या संलग्न करें। तब आपकी कनेक्शन स्ट्रिंग को इंस्टेंस नाम, डेटाबेस नाम और क्रेडेंशियल निर्दिष्ट करने की आवश्यकता होगी। कोई मिश्रण नहीं होगा क्योंकि प्रबंधन स्टूडियो, विजुअल स्टूडियो और आपके प्रोग्राम सभी डेटाबेस की एक प्रति से जुड़ रहे होंगे।

  2. SqlLocalDb का उपयोग करें स्थानीय विकास के लिए। मेरा मानना ​​है कि मैंने आपको कल इस लेख की ओर इशारा किया था:"एसक्यूएल सर्वर 2012 एक्सप्रेस लोकलडीबी के साथ शुरुआत करना।"

  3. SQL सर्वर कॉम्पैक्ट का उपयोग करें। मुझे यह विकल्प कम से कम पसंद है क्योंकि कार्यक्षमता और वाक्यविन्यास समान नहीं है - इसलिए यह जरूरी नहीं है कि आपको वह सभी कार्यक्षमताएं प्रदान करें जिन्हें आप अंततः तैनात करना चाहते हैं। कॉम्पैक्ट संस्करण को भी हटा दिया गया है, इसलिए वह है।

बेशक यदि आप एक संस्करण का उपयोग कर रहे हैं SqlLocalDb एक विकल्प नहीं है - इसलिए आपको एक वास्तविक डेटाबेस बनाना चाहिए और उसका लगातार उपयोग करना चाहिए। मैं केवल पूर्णता के लिए कॉम्पैक्ट विकल्प का उल्लेख करता हूं - मुझे लगता है कि यह लगभग उतना ही बुरा विचार हो सकता है जितना कि AttachDbFileName का उपयोग करना। ।

संपादित करें: मैंने इसके बारे में यहां ब्लॉग किया है:

  • बुरी आदतें:अटैचडीबीफाइलनाम का उपयोग करना


  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 सर्वर लेनदेन लॉग — भाग 1

  3. SQL सर्वर * =ऑपरेटर?

  4. डेटाबेस मेल प्रोफाइल अपडेट करें (SSMS)

  5. SQL सर्वर में दिनांक से लघु माह का नाम प्राप्त करने के 5 तरीके