Просто, чтобы уточнить, это не вопрос, а какая-то помощь для таких людей, как я, которые искали ответ.
Множество приложений создают временные таблицы и т.п., Но я был удивлен, когда Team Foundation Server создал более 80 баз данных на моем тестовом SQL Server. TFS не установил правильно, и любезно оставил меня прояснить после него. Поскольку каждая база данных имела соглашение об именах, а не удаляла каждую базу данных вручную, я вспомнил, как использовать курсоры и написал то, что я считаю самым неразумным фрагментом T-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;
Само собой разумеется, что использование таких курсоров, вероятно, действительно опасно и должно использоваться с особой осторожностью. Это сработало для меня, и я еще не видел никакого дальнейшего повреждения моей базы данных, но я отказываюсь: используйте этот код на свой страх и риск и сначала создайте свои жизненно важные данные! Кроме того, если это нужно удалить, потому что это не вопрос, я понимаю. Просто хотел опубликовать это где-то люди будут выглядеть.