SQL2005 卡在单一模式用户

SQL2005 卡在单一模式用户

嘿,目前有一个数据库卡在单一模式,在将它设置为单一模式以尝试使其脱机之后,我希望我从来没有这样做过......

我试过

ALTER DATABASE DB SET MULTI_USER

但得到

消息 5064,级别 16,状态 1,第 1 行 此时无法更改数据库“DB”的状态或选项。该数据库处于单用户模式,当前有用户连接到该数据库。消息 5069,级别 16,状态 1,第 1 行 ALTER DATABASE 语句失败。

当我右键单击数据库以转到 ie 属性时,我得到了

Database "DB" is already open and can only have one user at a time.

有任何想法吗 ?

答案1

SELECT * from sys.databases--> 从数据库中获取database_id。

SELECT * FROM MASTER..SysProcesses WHERE dbid = [thedbid](插入你的数据库 ID)

查找要杀死的 spid

KILL [theid]

答案2

用于SP_Who查找与数据库的活动连接的会话 ID。

用于KILL <session id>终止连接。

然后执行Alter Database您尝试过的命令。

答案3

最糟糕的是,如果没有其他方法可行,您应该能够重新启动服务器以终止与数据库的任何连接,然后在重新启动后将其置于多用户模式。

答案4

当我尝试从单用户模式切换到离线模式时,我遇到了同样的问题。一个模糊的问题,以及一个(可能)模糊的解决方案:

  1. 运行下面的查询。它应该会给出“单个用户”错误。从 sys.SysProcesses 中选择 *

  2. 切换到“结果”窗格。找到列表中的最后一个 spid。

  3. 假设结果窗格中显示的最后一个 SPID 是 70。终止下一个 spid。KILL 71

这为我释放了连接。我猜 sys.sysprocesses 查询会返回结果,直到它遇到无法连接的数据库。

相关内容