SQL Server 2008 R2陷入单用户模式

Pau*_*els 34 sql database sql-server database-deployment sql-server-2008

在本地数据库上执行数据库部署(来自VS SQL Server数据库项目)失败后,数据库处于保持单用户模式的状态(部署以单用户模式运行).

当我从SSMS连接到它并尝试类似以下内容:

ALTER DATABASE MyDatabase
SET MULTI_USER;
GO
Run Code Online (Sandbox Code Playgroud)

我收到错误:

目前无法更改数据库'MyDatabase'的状态或选项.数据库处于单用户模式,用户当前已连接到该用户.

我尝试使数据库脱机,SSMS告诉我成功,但实际上并没有做任何事情.到目前为止,我只能通过删除和重新创建数据库来解决这个问题(这有点好,因为它只是一个本地测试数据库).但是,我希望能够重置状态.

如何说服SQL Server将此数据库从单用户模式中删除?

meh*_*tfi 119

在master数据库中的第一次运行后查询

exec sp_who
Run Code Online (Sandbox Code Playgroud)

如果你找不到罪魁祸首,试试吧

SELECT request_session_id FROM sys.dm_tran_locks 
WHERE resource_database_id = DB_ID('YourDatabase')
Run Code Online (Sandbox Code Playgroud)

然后使用以下查询终止使用您的数据库的所有进程:

KILL spid
Run Code Online (Sandbox Code Playgroud)

然后运行以下查询:

USE Master
ALTER DATABASE YourDatabase SET MULTI_USER
Run Code Online (Sandbox Code Playgroud)

  • 如果在sp_who输出中找不到任何可疑的条目,则此查询帮助了我 - SELECT request_session_id FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID('YourDatabase') (6认同)