在本地数据库上执行DB deploy (来自VS SQL Server数据库项目)失败后,数据库一直处于开启单用户模式( deploy as single user mode)的状态。
当我从SSMS连接到它并尝试执行以下操作时:
ALTER DATABASE MyDatabase
SET MULTI_USER;
GO
我得到了错误:
此时无法对数据库'MyDatabase‘的状态或选项进行
更改。数据库处于单用户模式,并且当前有用户连接到该数据库。
我尝试使数据库离线,SSMS告诉我成功了,但它似乎没有实际执行任何操作。到目前为止,我只能通过删除并重新创建数据库来解决这个问题(这还可以,因为它只是一个本地测试数据库)。但是,我希望能够重置状态。
如何说服SQL Server使此数据库脱离单用户模式?
发布于 2014-07-07 18:55:52
在主数据库中第一次运行以下查询
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
发布于 2017-11-07 21:32:16
尝试下面的命令
首先运行以下三个命令
USE [master]
SET DEADLOCK_PRIORITY HIGH
exec sp_dboption MyDBName, 'single user', 'FALSE';
第二次运行这两个命令
ALTER DATABASE MyDBName SET MULTI_USER WITH NO_WAIT
ALTER DATABASE MyDBName SET MULTI_USER WITH ROLLBACK IMMEDIATE
发布于 2014-07-07 18:47:21
这是here的回答,代码是:
use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
--do you stuff here
ALTER DATABASE YourDatabase SET MULTI_USER
https://stackoverflow.com/questions/24608702
复制相似问题