只是为了澄清一下,这并不是一个真正的问题,更多的是对像我这样正在寻找答案的人的帮助。
许多应用程序创建临时表等,但当 Team Foundation Server 在我的测试 SQL Server 上创建 80 多个数据库时,我感到很惊讶。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;
不用说,使用这样的游标可能真的很危险,应该非常小心地使用。这对我有用,我还没有看到我的数据库有任何进一步的损坏,但我声明:使用此代码需要您自担风险,并首先备份您的重要数据!
另外,如果因为这不是问题而应该删除它,我理解。只是想把这个贴在人们会看的地方。