-4

亲爱的,我正在使用 SQL Server 2008。

在我的 Windows 应用程序中有包含所有数据库列表的组合框。

我想删除在组合框中选择的数据库。

但是当我运行我的查询时,会发生以下异常:

无法删除数据库“dm12”,因为它当前正在使用中

这是代码

 USE dm12
 GO
 DROP DATABASE dm12
 GO
4

2 回答 2

2

如果要删除master数据库,请先使用数据库,然后再删除数据库。

代替

USE dm12

USE Master;

确保在 SQL Server Management Studio 中没有使用相同的数据库连接打开任何查询选项卡。

如果您仍然遇到相同的异常,则只需完全关闭 SQL Server Management Studio。再次打开并正常连接

于 2013-03-16T05:25:15.730 回答
0

如果你有足够的权限,下面的代码几乎可以保证你可以成功删除数据库。但是为什么直接从应用层删除数据库,你如何控制有人意外删除数据库的风险......

将数据库更改为单用户并立即回滚将导致所有未完成的事务被回滚,并且与 dm12 数据库的任何其他连接都将立即断开。


    USE master;
    GO
    ALTER DATABASE dm12
    SET SINGLE_USER
    WITH ROLLBACK IMMEDIATE;
    GO
    DROP DATABASE dm12;
    GO

于 2013-03-16T08:05:53.733 回答