Tentamos restaurar um banco de dados e ele falhou por algum motivo. Agora está preso no modo de usuário único. Aqui está o que eu tentei:
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 = 'mydb'
Ele retornou um resultado e eu o matei usando kill 77
. Eu li em algum lugar que você também deve matar o id mais um para uma boa medida, então também corremos kill 78
. Neste ponto, a execução da consulta retornou novamente 0 conexões.
Eu tentei todos estes:
exec sp_dboption 'mydb', 'single user', 'FALSE';
SET DEADLOCK_PRIORITY HIGH
exec sp_dboption 'mydb', 'single user', 'FALSE';
ALTER DATABASE [mydb] SET MULTI_USER WITH NO_WAIT
ALTER DATABASE [mydb] SET MULTI_USER WITH ROLLBACK IMMEDIATE
Todos eles me dão
Msg 5064, Level 16, State 1, Line 1
Changes to the state or options of database 'mydb' cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
Eu percebo que provavelmente poderia resolver o problema reiniciando o serviço sql ou talvez reinicializando o servidor. No entanto, este é um servidor de produção, então prefiro evitar isso.
Alguma sugestão?