आप एक उपाय आजमा सकते हैं। संक्षेप में:
- एक ही नाम के साथ एक डमी डीबी बनाएं (पहले वास्तविक डीबी को हटाने की आवश्यकता हो सकती है, मूल फाइलों को सहेजना होगा या फिर नाम बदलना होगा)।
- डमी ऑफ लाइन लें (अलग करें और (ऑफ़लाइन सेट करें या SQL सेवा बंद करें))।
- डमी फाइलें हटाएं, फिर वास्तविक डीबी फाइलों से बदलें।
- डीबी को फिर से जोड़ने का प्रयास करें
संपादित करें
जैसा कि ओपी टिप्पणी नोट के अनुसार आपको लॉग को फिर से बनाने की आवश्यकता हो सकती है (यदि आपने लेनदेन खो दिया है)
-
डेटाबेस बदलें [MyDatabase] लॉग ऑन करें (NAME='MyDatabaseLog',FILENAME='D:\Microsoft SQL Server\YourDataPath\Data\Logfile.ldf')
और डीबी को एकाधिक उपयोगकर्ता लॉग में डाल दें (डीबी को बंद करने से आपको इसे एकल उपयोग मोड में रखना पड़ सकता है)
-
वैकल्पिक डेटाबेस [nomdb] MULTI_USER सेट करें
सभी गोर विवरणों के लिए आप पॉल रैंडल लेख
(इस लेख में ध्यान दें कि लेखक लेन-देन लॉग को ठीक करने के लिए (प्रयास) करने के लिए आपातकालीन मोड का उपयोग करता है)
मैंने पहले ही इसका सफलतापूर्वक उपयोग कर लिया है लेकिन क्षति की सीमा या अन्य विवरणों के आधार पर यह एक असंभव कार्य हो सकता है। बैकअप बहाल करने पर विचार करें।
ध्यान दें कि विकास सर्वर में यह स्टंट ठीक हैं लेकिन आपको वास्तव में एक प्रोडक्शन सर्वर में आपदा वसूली के लिए योजना (और ड्रिल) करने की आवश्यकता है।