डेटाबेस 'XXX' संक्रमण में है। बाद में कथन का प्रयास करें


27

मैं एक sql सर्वर डेटाबेस से कनेक्ट करने की कोशिश कर रहा हूँ मुझे यह त्रुटि मिली

Database 'XXX' is in transition. Try the statement later.

मैंने पहले आज एक लंबी क्वेरी रद्द कर दी थी लेकिन किसी कारण से मुझे वापस पाने के लिए डेटाबेस नहीं मिल सका। क्या मै कुछ कर सकता हुं?


4
इस तरह के एक प्रश्न के साथ आप वास्तव में SQL सर्वर और उसके संस्करण के बारे में विशिष्ट होना चाहिए। मैं अनुमान लगा रहा हूं कि आप Microsoft SQL सर्वरों में से एक हैं, लेकिन हमें अनुमान नहीं लगाना चाहिए।
जॉन गार्डनियर्स

इसकी जांच करो। इसने मेरे लिए काम किया। stackoverflow.com/a/27036481/4273753

जवाबों:


40

यह कभी-कभी हो सकता है यदि आप एक डीबी ऑफ़लाइन लेने या कुछ अन्य संचालन करने की कोशिश करते हैं और वे विफल हो जाते हैं। कभी-कभी लॉक साफ़ किया जा सकता है यदि आप ऑपरेशन का प्रयास करने वाले SSMS उदाहरण को बंद करते हैं, तो इसे फिर से खोलें। सर्वर से जुड़े किसी भी SSMS इंस्टेंस को बंद करें और फिर से खोलें।

यह तब भी हो सकता है जब आप एक लंबी क्वेरी चलने के दौरान DB ऑफ़लाइन लेने का प्रयास करते हैं। गतिविधि की निगरानी करें और लागू होने और सुरक्षित होने पर किसी भी लंबे समय तक चलने वाले प्रश्नों को मारने का प्रयास करें।

यदि उपरोक्त में से कोई भी काम नहीं करता है, तो सभी SSMS इंस्टेंस को बंद करें, फिर SQL सर्वर कॉन्फ़िगरेशन प्रबंधक के माध्यम से SQL को पुनरारंभ करें। आमतौर पर यह इसे ठीक कर देगा, हालांकि पहली बार में डीबी रिकवरी मोड में हो सकता है।


यह काफी आश्चर्यजनक है। क्या आप जानते हैं कि ऐसा क्यों हो रहा है?
क्रिस्मोर्ते

11

अजीब तरह से, मैंने बस SSMS को बंद करके और फिर से खोलने के द्वारा इस समस्या को ठीक किया।


बहुत आसान। मेरे लिए काम किया।
greg121

SSMS को बंद करना और फिर से खोलना मेरे लिए भी काम कर गया।
माइकल बोल्होफर

3

SSMS को बंद करते समय मेरे लिए भी काम किया, समस्या के आधार पर, आप यह कोशिश कर सकते हैं:

ALTER DATABASE [Name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [Name] SET MULTI_USER

यह विचार इस सवाल (और व्यक्तिगत अनुभव) से आया है: /programming/4230290/sql-server-2008-how-do-i-disconnect-everyone-from-my-db


1

ऑनलाइन / ऑफ़लाइन डेटाबेस लेने के लिए SQL सर्वर प्रबंधन स्टूडियो में एक विकल्प उपलब्ध है। लेकिन इसके लिए प्रशासनिक अनुमति चाहिए।

इसे एक्सेस करने के लिए, डेटाबेस पर क्लिक करें -> कार्य -> ​​ऑनलाइन लाएं।


0

मुझे पता है कि यह पहले से ही उत्तर दिया गया है, लेकिन सिर्फ जोड़ने के लिए; यदि स्थिति ऐसी है कि आप इसे ऑफ़लाइन लेने का प्रयास कर रहे थे, और फिर यह विफल हो गया, तो आप SPID को मारने की कोशिश कर सकते हैं जो डेटाबेस स्थिति को बदलने की कोशिश कर रहा है।

Sp_who या sp_who2 करें और डेटाबेस को ऑफ़लाइन लेने की कोशिश कर रहे DB पर घूमने वाले SPID खोजें। कि SPID, और आप ऑनलाइन या ऑफ़लाइन DB के साथ छोड़ दिए जाते हैं जो संक्रमणकालीन स्थिति में नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.