2012-11-16 7 views
32

चलाए जाने पर डेटाबेस (localdb) डेटाबेस को कैसे हटाएं यदि मैं SQL सर्वर प्रबंधन स्टूडियो चलाता हूं, और इसे (localdb) \ v11.0 से कनेक्ट करने के लिए कहता हूं, तो यह हर डेटाबेस के बारे में जानता है जो मैंने कभी भी उपयोग किया है, बावजूद तथ्य यह है कि अधिकांश डेटाबेस फ़ाइलों को लंबे समय तक चला गया है।फ़ाइल को

अगर मैं इन डेटाबेसों में से किसी एक को हटाने के लिए कहता हूं, तो यह शिकायत करता है कि यह डेटाबेस को ड्रॉप नहीं कर सकता क्योंकि डेटाबेस फ़ाइल चलाई गई है (duhhh)। तो, मैं इस गड़बड़ी को कैसे साफ कर सकता हूं और उन डेटाबेस संदर्भों को हटा सकता हूं जिनकी जटिल डेटाबेस फाइलें चली गई हैं?

बॉब

उत्तर

29

इस स्थिति में, इसे छोड़ने की कोशिश करने के बजाय डेटाबेस को अलग करें। एसक्यूएल प्रबंधन स्टूडियो में, डेटाबेस पर राइट-क्लिक करें, "कार्य" का चयन करें और फिर "अलग करें"।

+4

एसएसएमएस 2012 में अजीब बग जब आप ऐसा करने का प्रयास करते हैं; यदि आपने डीबी को हटाने का प्रयास किया है और मूल रूप से त्रुटि संदेश मिला है, तो "डिटेच" विंडो अब काम नहीं करेगी। इसे फिर से काम करने के लिए आपको डिस्कनेक्ट करने और डीबी सर्वर से पुनः कनेक्ट करने की आवश्यकता है। – CodingWithSpike

+0

डेटाबेस मेरे लिए अलग सूची में दिखाई नहीं देता है लेकिन यह अभी भी डेटाबेस सर्वर (2016) – Damien

1

यह करने के लिए किया है प्रकट होता है "निश्चित ही" (कम या ज्यादा)। जब मैंने आज सुबह SQL सर्वर प्रबंधन स्टूडियो में (localdb) \ v11.0 देखा, तो पुराने डेटाबेस सभी चले गए थे।

जितना करीब मैं कह सकता हूं, इस तथ्य के बावजूद कि उसने ऐसा नहीं किया है, इसके बावजूद यह उनके संदर्भों को हटा दिया होगा।

शायद कुछ SQL सर्वर गुरु (या कम से कम किसी व्यावहारिक अनुभव के साथ कोई व्यक्ति) कुछ ज्ञान जोड़ सकता है?

13

मुझे एक ही समस्या थी। पहले कोड का उपयोग कर डीबी डिजाइन करते समय, मैं बस पुराने डीबी को हटा देता हूं। यह SQL सर्वर प्रबंधन स्टूडियो में दिखाई देने वाले कई हटाए गए डीबी के साथ समाप्त होता है। फिर जब मैं डीबी से पूछताछ करने की कोशिश करता हूं, तो हटाए गए बीच से सही डीबी इंस्टेंस को ढूंढना मुश्किल हो जाता है।

आईआरएम के सुझाव के अनुसार, मैंने उन हटाए गए डीबी को अलग करने की कोशिश की, और उनमें से कुछ के लिए यह बहुत अच्छा काम करता है!

हालांकि अभी भी मेरे पास कई बाएं हैं। तब मैंने उन डीबी पर "ऑफलाइन ले लो" की कोशिश की। प्रत्येक बार जब मैंने डीबी ऑफ़लाइन लेने की कोशिश की, तो SQL सर्वर प्रबंधन स्टूडियो क्रैश हो गया। SQL सर्वर प्रबंधन स्टूडियो पुनरारंभ करने के बाद, डीबी चला गया था। इसलिए यदि आप अलग-अलग काम करते हैं और हटाते हैं तो "ऑफलाइन लें" करने का प्रयास करें।

+2

में सूचीबद्ध है मजेदार तथ्य: 3 साल बाद, प्रबंधन स्टूडियो 2014 अभी भी इसे क्रैश करता है! – Malachi

16

आपको ऐसा करने की ज़रूरत है, उदाहरण के लिए एसक्यूएल 2012 के साथ परीक्षण किया जाए! सिर्फ व्यवस्थापक अधिकार और प्रकार के साथ कमांड प्रॉम्प्ट में जाना:

//list the instancies 
sqllocaldb i 

//stop selected instance 
sqllocaldb p "selected instance" 

//delete 
sqllocaldb d "selected instance" 

//recreate or create new one 
sqllocaldb c "new instance" 
+0

यदि आप डेटाबेस का उपयोग करते हैं तो आपको इसे अगले कमांड से रोकना होगा: sqllocaldb "चयनित उदाहरण" रोकें। – RredCat

+0

"स्टॉप" के लिए छोटा है बस "पी" –

2

मैं इनमें से एकत्र सैकड़ों चाहते हैं, और अलग करने के लिए उन्हें व्यक्तिगत रूप से अभी भी कठिन शापित किया गया था।

मैं क्या किया:

EXEC sp_detach_db 'E:\...\ADATABASE.MDF' 
EXEC sp_detach_db 'E:\...\ANOTHERDATABASE.MDF' 
EXEC sp_detach_db 'E:\...\ATHIRDDATABASE.MDF' 
.... 
EXEC sp_detach_db 'master' 
EXEC sp_detach_db 'model' 
EXEC sp_detach_db 'msdb' 
EXEC sp_detach_db 'tempdb' 

कॉपी परिणामों को वापस कमांड विंडो में, अन्य सब कुछ पर प्रकाश डाला सिस्टम डेटाबेस से, और निष्पादित करें:

SELECT 'EXEC sp_detach_db ''' + name + '''' 
FROM sys.databases 
; 

यह मैं कार्यकारी आदेशों की एक सूची दे दी है ।

संबंधित मुद्दे