亲爱的,我正在使用 SQL Server 2008。
在我的 Windows 应用程序中有包含所有数据库列表的组合框。
我想删除在组合框中选择的数据库。
但是当我运行我的查询时,会发生以下异常:
无法删除数据库“dm12”,因为它当前正在使用中
这是代码
USE dm12
GO
DROP DATABASE dm12
GO
亲爱的,我正在使用 SQL Server 2008。
在我的 Windows 应用程序中有包含所有数据库列表的组合框。
我想删除在组合框中选择的数据库。
但是当我运行我的查询时,会发生以下异常:
无法删除数据库“dm12”,因为它当前正在使用中
这是代码
USE dm12
GO
DROP DATABASE dm12
GO
如果要删除master
数据库,请先使用数据库,然后再删除数据库。
代替
USE dm12
和
USE Master;
确保在 SQL Server Management Studio 中没有使用相同的数据库连接打开任何查询选项卡。
如果您仍然遇到相同的异常,则只需完全关闭 SQL Server Management Studio。再次打开并正常连接
如果你有足够的权限,下面的代码几乎可以保证你可以成功删除数据库。但是为什么直接从应用层删除数据库,你如何控制有人意外删除数据库的风险......
将数据库更改为单用户并立即回滚将导致所有未完成的事务被回滚,并且与 dm12 数据库的任何其他连接都将立即断开。
USE master;
GO
ALTER DATABASE dm12
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DROP DATABASE dm12;
GO