我需要帮助设置在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模式时,我不能将数据库设置为任何其他模式。
当前回答
SQL Server 2012:
右键单击DB > Properties > Options >[向下滚动]State > RestrictAccess >选择Multi_user,然后单击OK。
拖鞋!
其他回答
该错误消息通常意味着还有其他进程连接到DB。试着运行这个,看看哪些是连接的:
exec sp_who
这将返回进程,然后你应该能够运行:
kill [XXX]
其中[xxx]是您试图杀死的进程的蜘蛛。
然后你可以运行上面的语句。
这对我来说很有效
备份 创建新数据库并将备份恢复到该数据库 属性>选项>[向下滚动]状态>限制性访问>选择Multi_user,单击“确定” 删除旧数据库
希望这对所有人都有效 谢谢你! 拉梅什·库马尔
这对我来说很有效。
步骤1。右键单击数据库引擎,单击活动监视器,查看哪个进程正在连接。立即终止特定用户并执行查询。
步骤2。
USE [master];
GO
ALTER DATABASE [YourDatabaseNameHere] SET MULTI_USER WITH NO_WAIT;
GO
并刷新数据库。
工作内容:
首先,我杀死所有数据库进程,以证明数据库没有在使用。 在我改变用户模式之后。
有时,一个进程会很快从应用程序中再次获取,我需要再次运行这个进程……
替换下面的表达式DATABASE_NAME,以使用您的数据库名称。
——杀过程
USE Master
GO
declare @sql as varchar(20), @spid as int
select @spid = min(spid) from master..sysprocesses where dbid = db_id('DATABASE_NAME') and spid != @@spid
while (@spid is not null)
begin
print 'Killing process ' + cast(@spid as varchar) + ' ...'
set @sql = 'kill ' + cast(@spid as varchar)
exec (@sql)
select
@spid = min(spid)
from
master..sysprocesses
where
spid > 50 AND dbid = db_id('DATABASE_NAME')
and spid != @@spid
end
print 'Killing Process completed...'
GO
**--Alter user mode**
ALTER DATABASE DATABASE_NAME SET MULTI_USER;
GO
print 'Alter Database Process completed...'
我在谷歌上搜索了一段时间,最终找到了下面的解决方案,
SSMS通常在幕后使用到数据库的多个连接。
在更改访问模式之前,您需要终止这些连接。(我用EXEC(@kill)做过;在下面的代码模板中。)
然后,
运行以下SQL将数据库设置为MULTI_USER模式。
USE master
GO
DECLARE @kill varchar(max) = '';
SELECT @kill = @kill + 'KILL ' + CONVERT(varchar(10), spid) + '; '
FROM master..sysprocesses
WHERE spid > 50 AND dbid = DB_ID('<Your_DB_Name>')
EXEC(@kill);
GO
SET DEADLOCK_PRIORITY HIGH
ALTER DATABASE [<Your_DB_Name>] SET MULTI_USER WITH NO_WAIT
ALTER DATABASE [<Your_DB_Name>] SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO
要切换回单用户模式,您可以使用:
ALTER DATABASE [<Your_DB_Name>] SET SINGLE_USER
这应该有用。编码快乐! !
谢谢! !