SQL Server 2008 R2 卡在单用户模式

标签 sql sql-server database sql-server-2008 database-deployment

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

当我从 SSMS 连接到它并尝试如下操作时:

ALTER DATABASE MyDatabase
SET MULTI_USER;
GO

我得到错误:

Changes to the state or options of database 'MyDatabase' cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.

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

我怎样才能说服 SQL Server 使这个数据库脱离单用户模式?

最佳答案

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

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

关于SQL Server 2008 R2 卡在单用户模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24608702/

相关文章:

mySQL - 从某个用户的1个表中选择第一行和最后一行数据

database - 生产环境上的 Laravel 4.x 迁移

sql - 如何通过过滤器有效地获得最小值和最大值?

php - MySQL - 从表中选择全部并从另一个表中选择相关行

c# - 如何在 MVC Controller 中使用 Linq 连接两个表

sql-server - 有什么办法可以克服 SQL Server 中的参数嗅探吗?

mysql - 如何触发一个表并更新同一个表?

mysql - 无法在 MariaDb/Mysql 中创建 NVARCHAR 列

sql - MS SQL Server 日期 Excel

sql-server - 在 ALTER DATABASE 语句中无效使用选项flush_interval_seconds