हाल ही में, मैंने SQL Server एक्सप्रेस इंस्टॉलर और इस निर्देश का उपयोग करके संस्करण 13 से 14 तक लोकलडीबी को अपग्रेड किया । स्थापना के बाद, मैंने 13 संस्करण के मौजूदा डिफ़ॉल्ट उदाहरण (MSSQLLOCALDB) को रोक दिया और एक नया बनाया, जो स्वचालित रूप से v14.0.1000 सर्वर इंजन का उपयोग करता था।
मैं अक्सर डेटाबेस एकीकरण परीक्षणों के लिए लोकलडीबी का उपयोग करता हूं, अर्थात मेरे xunit परीक्षणों में, मैं एक (अस्थायी) डेटाबेस बनाता हूं जो परीक्षण समाप्त होने पर हटा दिया जाता है। नए संस्करण के बाद से, दुर्भाग्यवश निम्नलिखित त्रुटि संदेश के कारण मेरे सभी परीक्षण विफल हो गए:
क्रिएट फ़ील को ऑपरेटिंग सिस्टम एरर 5 मिला (एक्सेस से वंचित किया गया है) भौतिक फ़ाइल 'C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482.mdf' खोलने या बनाने का प्रयास करते समय
विचित्र बात यह है कि mdf फ़ाइल के लिए लक्ष्य पथ गलत है, C: \ Users \ kepfl और DBd0811493e18b46febf980ffb8029482a.df (जो एकल परीक्षण के लिए यादृच्छिक डेटाबेस नाम है) के बीच एक बैकस्लैश गायब है । डेटाबेस साधारण कमांड के माध्यम से बनाए जाते हैं CREATE DATABASE [databaseName]
- यहां कुछ खास नहीं है।
SSMS में, मैं देखता हूं कि डेटा, लॉग और बैकअप के लिए लक्ष्य स्थान निम्नलिखित हैं:
हालाँकि, जब मैं स्थान को अपडेट करने का प्रयास करता हूं, तो मुझे एक और त्रुटि संदेश मिलता है:
मैं डिफ़ॉल्ट स्थानों को कैसे अपडेट कर सकता हूं ताकि लोकलडीबी फिर से डेटाबेस बनाने में सक्षम हो? यह स्पष्ट है कि LocalDB डिफ़ॉल्ट स्थान निर्देशिका और डेटाबेस फ़ाइल नाम को सही ढंग से संयोजित नहीं करता है - क्या कोई रजिस्ट्री प्रविष्टि है जिसे मैं संपादित कर सकता हूं? या फिर कुछ और?
डौग के उत्तर और सीपिक की टिप्पणी के बाद अपडेट करें
इस Stackoverflow प्रश्न के अनुसार , डिफ़ॉल्ट स्थान को भी रजिस्ट्री के माध्यम से परिवर्तनशील होना चाहिए। हालाँकि, यदि मैं संबंधित कुंजियाँ "DefaultData", "DefaultLog" और "BackupDirectory" खोजने का प्रयास करता हूँ, तो मैं उन्हें अपनी रजिस्ट्री में नहीं ढूँढ सकता। क्या SQL सर्वर v14 ने इन रजिस्ट्री कुंजियों का नाम बदला, या रजिस्ट्री से इन सूचनाओं को स्थानांतरित किया?