在本地数据库上执行了从VS SQL Server数据库项目执行的DB部署失败后,该数据库处于保留了单用户模式的状态(部署以单用户模式运行)。
当我从SSMS连接到它并尝试执行以下操作时:
ALTER DATABASE MyDatabase SET MULTI_USER; GO
我得到了错误:
目前无法更改数据库“ MyDatabase”的状态或选项。数据库处于单用户模式,并且当前有用户连接到该数据库。
我尝试使数据库脱机,SSMS告诉我成功了,但是它似乎并没有做任何事情。到目前为止,我只能通过删除并重新创建数据库来解决此问题(这可以,因为它只是本地测试数据库)。但是,我希望能够重置状态。
如何说服SQL Server使该数据库脱离单用户模式?
在第一次运行时,在主数据库中进行以下查询
exec sp_who
如果找不到元凶,请尝试
SELECT request_session_id FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID('YourDatabase')
然后使用以下查询杀死所有使用数据库的进程:
KILL spid
然后运行以下查询:
USE Master ALTER DATABASE YourDatabase SET MULTI_USER