Sql server 2012 如何在删除数据库之前以编程方式关闭现有的数据库连接?

Sql server 2012 如何在删除数据库之前以编程方式关闭现有的数据库连接?,sql-server-2012,Sql Server 2012,当我试图以编程方式删除正在使用的数据库时,有时会出错。因此,我使用向导来删除带有复选框的数据库,该复选框显示“关闭现有连接”以成功删除它。现在我想使用sql代码来实现这一点 如果存在,请从sys.databases中选择1,其中name='Time Monitoring1001' 删除数据库[Time Monitoring 1001]这样就可以了。这会断开除您之外的所有人的连接 use master alter database YourDbName set single_user with r

当我试图以编程方式删除正在使用的数据库时,有时会出错。因此,我使用向导来删除带有复选框的数据库,该复选框显示“关闭现有连接”以成功删除它。现在我想使用sql代码来实现这一点

如果存在,请从sys.databases中选择1,其中name='Time Monitoring1001'
删除数据库[Time Monitoring 1001]

这样就可以了。这会断开除您之外的所有人的连接

use master
alter database YourDbName set single_user with rollback immediate
编辑:您也可以尝试将其设置为脱机

alter database YourDbName set offline with rollback immediate

它不是因为有人在使用数据库,包括我,才被删除的吗??当我使用该行时,它仍然没有删除,并且显示相同的错误。现在我执行了该代码,甚至无法删除它,甚至无法在向导中选中“关闭现有连接”复选框。lol,因此我必须通过再次将其设置为多用户来还原它,确保您正在使用主实例。如果我使用相同的名称重新创建相同的数据库,则会发生某些情况。无法创建文件'C:\Program Files\Microsoft SQL Server\MSSQLS11.SQLEXPRESS\MSSQL\DATA\Time Monitoring1001.mdf',因为它已经存在。请更改文件路径或文件名,然后重试该操作。Msg 1802,16级,状态4,第1行创建数据库失败。无法创建列出的某些文件名。检查相关错误。