首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL Server中删除多个数据库

如何在SQL Server中删除多个数据库
EN

Stack Overflow用户
提问于 2011-02-25 18:49:10
回答 3查看 38.7K关注 0票数 32

只是澄清一下,这不是一个真正的问题,更多的是对像我这样正在寻找答案的人的一些帮助。

很多应用程序都会创建临时表之类的东西,但当Team Foundation Server在我的测试SQL Server上创建80+数据库时,我感到很惊讶。TFS没有正确安装,请让我在安装后进行清理。因为每个数据库都有一个命名约定,而不是手动删除每个数据库,所以我记得如何使用游标,并编写了我认为是有史以来最不明智的T-SQL代码:

代码语言:javascript
复制
   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;

不用说,使用这样的游标可能真的很危险,应该非常谨慎地使用。这对我来说很有效,我还没有看到我的数据库受到任何进一步的破坏,但我声明:使用此代码的风险自负,并首先备份您的重要数据!

另外,如果因为这不是一个问题而应该删除,我可以理解。只是想把这个贴到人们会看的地方。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5116296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档