我需要帮助设置在SINGLE_USER模式恢复到MULTI_USER的数据库。每次我奔跑
ALTER DATABASE BARDABARD
SET MULTI_USER;
GO
我得到这个错误:
目前不能更改数据库'BARDABARD'的状态或选项。 数据库处于单用户模式,当前有用户连接到数据库。
它需要在非SINGLE_USER模式下将其设置为另一种模式,但当它是SINGLE_USER模式时,我不能将数据库设置为任何其他模式。
我需要帮助设置在SINGLE_USER模式恢复到MULTI_USER的数据库。每次我奔跑
ALTER DATABASE BARDABARD
SET MULTI_USER;
GO
我得到这个错误:
目前不能更改数据库'BARDABARD'的状态或选项。 数据库处于单用户模式,当前有用户连接到数据库。
它需要在非SINGLE_USER模式下将其设置为另一种模式,但当它是SINGLE_USER模式时,我不能将数据库设置为任何其他模式。
当前回答
该错误消息通常意味着还有其他进程连接到DB。试着运行这个,看看哪些是连接的:
exec sp_who
这将返回进程,然后你应该能够运行:
kill [XXX]
其中[xxx]是您试图杀死的进程的蜘蛛。
然后你可以运行上面的语句。
其他回答
SQL Server 2012:
右键单击DB > Properties > Options >[向下滚动]State > RestrictAccess >选择Multi_user,然后单击OK。
拖鞋!
这对我来说很有效
备份 创建新数据库并将备份恢复到该数据库 属性>选项>[向下滚动]状态>限制性访问>选择Multi_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
我和当地的数据库出了点问题。
我能够通过停止SQL server来解决这个问题,然后启动SQL server,然后使用SSMS UI将DB属性更改为Multi_User。
当我试图恢复备份时,数据库进入“单用户”模式。在尝试恢复之前,我没有创建目标数据库的备份(SQL 2017)。这样你每次都能成功。
停止SQL Server,启动SQL Server,然后运行上述脚本或使用用户界面。
这对我来说很有效。
步骤1。右键单击数据库引擎,单击活动监视器,查看哪个进程正在连接。立即终止特定用户并执行查询。
步骤2。
USE [master];
GO
ALTER DATABASE [YourDatabaseNameHere] SET MULTI_USER WITH NO_WAIT;
GO
并刷新数据库。