我需要帮助设置在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模式时,我不能将数据库设置为任何其他模式。
当前回答
我刚固定使用以下步骤,它可能会帮助你。
步骤:1
一步:2
一步:3
一步:4
一步:5
然后运行下面的查询。
ALTER DATABASE YourDBName
SET MULTI_USER
WITH ROLLBACK IMMEDIATE
GO
享受……!
其他回答
这对我来说很有效
备份 创建新数据库并将备份恢复到该数据库 属性>选项>[向下滚动]状态>限制性访问>选择Multi_user,单击“确定” 删除旧数据库
希望这对所有人都有效 谢谢你! 拉梅什·库马尔
当我不知道用于切换到单用户模式的特定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
您可以添加立即回滚更改的选项。
ALTER DATABASE BARDABARD
SET MULTI_USER
WITH ROLLBACK IMMEDIATE
GO
转到数据库属性 并将单用户模式改为多用户模式
注意: 如果它不工作,然后采取数据库备份和恢复,再做上述方法
* 单身= SINGLE_USER
多个= MULTI_USER
限制= RESTRICTED_USER
进入单用户模式后,客户端只能与SQL Server建立一个连接,记住“对象资源管理器”占用一个(单独的)连接,所以如果你试图在查询窗口中运行多用户语句,你会得到在单用户模式下无法建立另一个连接的错误。
但对我来说,这不是问题,在我的情况下,很少有自动进程持续地(每隔几秒钟)建立连接,所以一旦我将DB设置为单用户模式并断开连接,其中一个进程就建立/占用了连接(在我可以开始恢复操作之前)。一旦我杀死这些连接,它们就会重新连接,当我运行恢复命令时,我会得到连接已经被占用的错误。
为了解决这个问题,我不得不在一个查询窗口中编写kill语句,更改User-Mode语句和Restore操作,当我一次性运行它们时,瞧!!它工作。
希望这能帮助到其他人。