Po prostu wyjaśnić, że tak naprawdę nie jest to pytanie, więcej pomocy dla ludzi takich jak ja, którzy szukali odpowiedzi.
Wiele aplikacji tworzy tabele tymczasowe i tym podobne, ale byłem zaskoczony, gdy Team Foundation Server utworzył ponad 80 baz danych na moim testowym serwerze SQL. TFS nie zainstalował się poprawnie i uprzejmie zostawił mnie, abym się po nim rozjaśnił. Ponieważ każda baza danych miała konwencję nazewnictwa, zamiast usuwać każdą bazę danych ręcznie, przypomniałem sobie, jak korzystać z kursorów i napisałem co mi zobaczyć się najbardziej nierozsądne kawałek T-SQL wiekiJak upuścić wiele baz danych w SQL Server
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;
Oczywiste powiedzenie, że używanie takich kursorów jest prawdopodobnie niebezpieczne i powinno być używane z dużą ostrożnością. To działało dla mnie i nie widziałem jeszcze żadnych szkód w mojej bazie danych, ale odrzucam: używaj tego kodu na własne ryzyko i najpierw twórz kopie ważnych danych!
Ponadto, jeśli to powinno zostać usunięte, ponieważ to nie jest pytanie, rozumiem. Po prostu chciałem opublikować to, gdzie ludzie będą wyglądać.
Jesteś mogą odpowiedzieć na swoje pytania, więc to może być lepiej aby ponownie wpisać pytanie w rzeczywiste pytanie (spróbuj sformułować je zarówno pod względem twojego szczególnego położenia, jak i ogólnego problemu, który mieści się w nim), a następnie opublikuj scenariusz jako odpowiedź. –