我需要帮助设置在SINGLE_USER模式恢复到MULTI_USER的数据库。每次我奔跑

ALTER DATABASE BARDABARD
SET MULTI_USER;
GO

我得到这个错误:

目前不能更改数据库'BARDABARD'的状态或选项。 数据库处于单用户模式,当前有用户连接到数据库。

它需要在非SINGLE_USER模式下将其设置为另一种模式,但当它是SINGLE_USER模式时,我不能将数据库设置为任何其他模式。


当前回答

我也有同样的问题,它通过以下步骤修复-参考:http://giladka8.blogspot.com.au/2011/11/database-is-in-single-user-mode-and.html

use master
GO

select 
    d.name, 
    d.dbid, 
    spid, 
    login_time, 
    nt_domain, 
    nt_username, 
    loginame
from sysprocesses p 
    inner join sysdatabases d 
        on p.dbid = d.dbid
where d.name = 'dbname'
GO

kill 56 --=> kill the number in spid field
GO

exec sp_dboption 'dbname', 'single user', 'FALSE'
GO

其他回答

当我不知道用于切换到单用户模式的特定SPID时,下面的代码为我工作。

use master
GO

select 
    d.name, 
    d.dbid, 
    spid, 
    login_time, 
    nt_domain, 
    nt_username, 
    loginame
from sysprocesses p 
    inner join sysdatabases d 
        on p.dbid = d.dbid
where d.name = 'dbname'
GO

kill 52 -- kill the number in spid field
GO

exec sp_dboption 'dbname', 'single user', 'FALSE'
GO

SQL Server 2012:

右键单击DB > Properties > Options >[向下滚动]State > RestrictAccess >选择Multi_user,然后单击OK。

拖鞋!

在超过3次使用SQL Server 2014的情况下,我有一个数据库转换为单用户模式,而我没有做任何改变。它一定是在数据库创建过程中以某种方式发生的。上面所有的方法从来没有工作过,因为我总是收到一个错误,数据库处于单用户模式,无法连接到。

我唯一要做的就是重新启动SQL Server Windows服务。这允许我连接到数据库并进行必要的更改,或者删除数据库并重新开始。

转到数据库属性 并将单用户模式改为多用户模式

注意: 如果它不工作,然后采取数据库备份和恢复,再做上述方法

* 单身= SINGLE_USER

多个= MULTI_USER

限制= RESTRICTED_USER

该错误消息通常意味着还有其他进程连接到DB。试着运行这个,看看哪些是连接的:

exec sp_who

这将返回进程,然后你应该能够运行:

kill [XXX]

其中[xxx]是您试图杀死的进程的蜘蛛。

然后你可以运行上面的语句。