Eu tenho um banco de dados no modo de usuário único que não consigo sair do modo de usuário único. Eu tentei redefinir o servidor e até tentei redefinir meu computador, mas a cada tentativa que faço de fazer algo nele, o SQL Server insiste que já existe alguma conexão aberta em algum lugar.
Eu realmente não entendo como é possível que haja uma conexão aberta para ele depois que acabei de redefinir meu computador e não abri uma conexão com ele. Estou usando o SSMS e fiz uma conexão com o servidor usando o explorador de objetos, após o qual tentei excluir o banco de dados diretamente usando a tecla delete (ou seja, não tenho nenhuma guia de consulta aberta, então definitivamente não há conexões lá).
Infelizmente, o aplicativo que estou usando não me permite especificar um nome de banco de dados, o que significa que tenho que descobrir como me livrar desse banco de dados estúpido para poder restaurar outro.
Tenho pesquisado no Google e tentado coisas diferentes, mas nada parece funcionar ... mesmo coisas que supostamente deveriam funcionar nesta situação.
Então, aqui estou eu procurando por mais ideias???
EDITAR:
Minha última tentativa foi usar SP_WHO para descobrir qual processo está conectado e, em seguida, MATÁ-lo. Mas toda vez que eu mato, ele volta com outro número imediatamente. Não entendo o que no mundo poderia estar causando tal comportamento.
EDIT2:
Eu apenas tentei select * from master..sysprocesses where spid = <spid>
ver o kpid que, se bem entendi, se correlaciona com a coluna PID na guia de detalhes do gerenciador de tarefas. O único problema é que o valor é 0, o que significaria que é o processo ocioso do sistema. Talvez eu esteja entendendo mal algo aqui.
Parar o servidor e desabilitar a
sa
conta parece um exagero para descartar um banco de dados. Da próxima vez que isso acontecer, o seguinte deve ser suficiente:A conexão que pode estar se infiltrando pode ser de qualquer coisa - SQL Server Agent, um servidor vinculado, IntelliSense em sua janela de consulta etc. alguma sessão não autorizada em exibições de compatibilidade obsoletas ...
SIM!!! EU FIZ ISSO!!!
Ao rodar
select * from master..sysprocesses where spid = <spid>
, percebi que a conexão estava sendo feita a partir da conta do usuário sa. Ainda não entendo o que diabos estava fazendo isso, mas desabilitei temporariamente a conta sa e reiniciei o servidor. Não foi possível fazer uma conexão novamente e larguei o banco de dados.