Como posso desanexar um banco de dados que está em uso?

14

Mesmo que nada esteja usando, não consigo desanexar um banco de dados porque ele está sendo usado.

Cannot detach the database 'DEMO' because it is currently in use.

Tentei reiniciar e recebo a mesma mensagem.

Jack B Nimble
fonte

Respostas:

17
--Kick all users off of the database NOW
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE

--Kick all but after 60 seconds
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK AFTER 60 SECONDS

--restore connection to users
ALTER DATABASE YourDatabase SET MULTI_USER
Controle de taxa
fonte
12

Você já tentou marcar a caixa "Drop Connections" quando a desanexou?

joeqwerty
fonte
Eu estava esperando mais por uma solução relacionada à consulta. O Server Management Studio Express muitas vezes faz com que minha máquina fique com uma tela azul. Então, eu estou usando uma ferramenta que apenas envia consultas para o servidor.
Jack B Nimble
Uma tela azul geralmente está relacionada a problemas de hardware ou no nível do SO, não a aplicativos muito específicos, como uma ferramenta de gerenciamento de banco de dados. Não consigo imaginar por que esse programa em particular causa um travamento na máquina, mas esse é definitivamente um sintoma de algum problema sério subjacente.
Massimo
É uma combinação do Visual Studio e do Server Management Studio Express, porque vi o comportamento em três estações de trabalho diferentes. Pode ser da execução de várias versões do Visual Studio ao mesmo tempo, eu sei que isso causa um comportamento bizarro no IE7 ao usar guias.
Jack B Nimble
1
  1. Desconecte do servidor.
  2. Reinicie o serviço SQL Server para fechar todas as conexões.
  3. Faça logon com autenticação do Windows.
  4. Desanexe facilmente o banco de dados.
MSS
fonte
1

Não se esqueça de marcar "Drop Connections" na janela "Desanexar banco de dados"; caso contrário, é muito simples e basta desanexar no menu, veja a imagem abaixo:

insira a descrição da imagem aqui

Ashraf El-Maadidi
fonte
0

Este comando deve eliminar todas as conexões e permitir que você se desconecte.

ALTER DATABASE SET SINGLE_USER WITH ROLLBACK_IMMEDIATE

DanBig
fonte