में एकाधिक डेटाबेस कैसे छोड़ें बस स्पष्ट करने के लिए, वास्तव में कोई प्रश्न नहीं है, मेरे जैसे लोगों के लिए कुछ और मदद जो उत्तर की तलाश में थे।
बहुत सारे एप्लिकेशन अस्थायी तालिकाओं और समान बनाते हैं, लेकिन मुझे आश्चर्य हुआ जब टीम फाउंडेशन सर्वर ने मेरे परीक्षण SQL सर्वर पर 80+ डेटाबेस बनाए। टीएफएस सही ढंग से स्थापित नहीं हुआ था, और कृपया इसके बाद मुझे साफ़ करने के लिए छोड़ दिया।SQL सर्वर
CREATE TABLE #databaseNames (name varchar(100) NOT NULL, db_size varchar(50), owner varchar(50), dbid int, created date, status text, compatibility_level int);
INSERT #databaseNames
exec sp_helpdb;
DECLARE dropCur CURSOR FOR
SELECT name FROM #databaseNames WHERE name like '_database_name_%';
OPEN dropCur;
DECLARE @dbName nvarchar(100);
FETCH NEXT FROM dropCur INTO @dbName;
DECLARE @statement nvarchar(200);
WHILE @@FETCH_STATUS = 0
BEGIN
SET @statement = 'DROP DATABASE ' + @dbName;
EXEC sp_executesql @statement;
FETCH NEXT FROM dropCur INTO @dbName;
END
CLOSE dropCur;
DEALLOCATE dropCur;
DROP TABLE #databaseNames;
यह बिना चला जाता है: चूंकि प्रत्येक डेटाबेस एक नामकरण परंपरा थी, बजाय हाथ से प्रत्येक डेटाबेस को हटाने, मैं कैसे कर्सर का उपयोग करने और जो लिखा है उसे मैं T-SQL कभी का सबसे मूर्ख टुकड़ा होने के लिए देखने को याद कह रहे हैं कि इस तरह के कर्सर का उपयोग शायद वास्तव में खतरनाक है, और अत्यधिक सावधानी के साथ इस्तेमाल किया जाना चाहिए। यह मेरे लिए काम करता है, और मैंने अभी तक अपने डेटाबेस को और कोई नुकसान नहीं देखा है, लेकिन मैं अस्वीकार करता हूं: इस कोड का उपयोग अपने जोखिम पर करें, और पहले अपने महत्वपूर्ण डेटा का बैकअप लें!
इसके अलावा, अगर इसे हटाया जाना चाहिए क्योंकि यह कोई सवाल नहीं है, तो मैं समझता हूं। बस इसे कहीं पोस्ट करना चाहते थे लोग देखेंगे।
आप अपनी खुद की सवालों के जवाब देने की अनुमति है, तो यह बेहतर हो सकता है प्रश्न को एक वास्तविक प्रश्न में फिर से लिखने के लिए (अपने विशेष परिस्थिति के मामले में इसे वाक्यांश करने का प्रयास करें, और सामान्य समस्या यह फिट बैठती है), फिर स्क्रिप्ट को उत्तर के रूप में पोस्ट करें। –