मैं एक टी-एसक्यूएल स्क्रिप्ट चला रहा हूं जो डेटाबेस को छोड़ देता है और फिर उसे पुनर्स्थापित करता है। स्क्रिप्ट एक SQL सर्वर 2008 डेटाबेस के खिलाफ चलाता है। कभी-कभी बैकअप फ़ाइल में कोई समस्या होती है और डेटाबेस पुनर्स्थापना स्थिति में फंस जाता है।जांच कर रहा है कि डेटाबेस को पुनर्स्थापित करने में डेटाबेस
IF EXISTS (SELECT 1 FROM master.dbo.sysdatabases WHERE name = 'dbname')
BEGIN
ALTER DATABASE [dbname]
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
END
IF EXISTS (SELECT 1 FROM master.dbo.sysdatabases WHERE name = 'dbname')
BEGIN
DROP DATABASE [dbname]
END
RESTORE DATABASE [dbname]
FROM DISK = N'C:\dbname.bak'
WITH FILE = 1,
NOUNLOAD,
STATS = 10
अगली बार स्क्रिप्ट स्क्रिप्ट चलाने त्रुटि संदेश
ALTER DATABASE is not permitted while a database is in the Restoring state.
यदि डेटाबेस ALTER डेटाबेस आदेश को चलाने के लिए प्रयास करने से पहले बहाल अवस्था में है की जाँच करने के लिए सबसे अच्छा तरीका क्या है उत्पन्न करता है?
संपादित करें: मैं जो रिकॉर्टर डेटाबेस चला रहा हूं वह कोई रिकवरी विकल्प नहीं उपयोग करता है।
राज्य_डिस्क्रिप्शन अब SQL 2008 r2 – Iain
@Iain में state_desc है: यह SQL-Server 2005 में state_desc भी है –