Wie kann ich eine Datenbank, die gerade verwendet wird, trennen?


13

Obwohl nichts verwendet wird, kann ich eine Datenbank nicht trennen, weil sie verwendet wird.

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

Ich habe versucht, neu zu starten und die gleiche Meldung zu erhalten.

Antworten:


16
--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

12

Haben Sie versucht, das Kontrollkästchen "Verbindungen trennen" zu aktivieren, wenn Sie es trennen?


Ich hatte mehr auf eine abfragebezogene Lösung gehofft. Server Management Studio Express führt sehr oft zu einem Bluescreen auf meinem Computer. Also benutze ich ein Tool, das nur Anfragen an den Server sendet.
Jack B Nimble

Ein Bluescreen hängt normalerweise mit Problemen auf Hardware- oder Betriebssystemebene zusammen, nicht mit einer bestimmten Anwendung, z. B. einem Datenbankverwaltungstool. Ich kann mir nicht vorstellen, warum dieses spezielle Programm Ihren Computer zum Absturz bringt, aber dies ist definitiv ein Symptom für ein ernstes Problem.
Massimo

Es ist eine Kombination aus Visual Studio und Server Management Studio Express, da ich das Verhalten auf drei verschiedenen Arbeitsstationen beobachtet habe. Möglicherweise werden mehrere Versionen von Visual Studio gleichzeitig ausgeführt. Ich weiß, dass dies in IE7 zu einem bizarren Verhalten führt, wenn Registerkarten verwendet werden.
Jack B Nimble

1
  1. Verbindung zum Server trennen.
  2. Starten Sie den SQL Server-Dienst neu, um alle Verbindungen zu schließen.
  3. Melden Sie sich mit der Windows-Authentifizierung an.
  4. Lösen Sie einfach die Datenbank.

1

Vergessen Sie nicht, das Kontrollkästchen "Verbindungen trennen" im Fenster "Datenbank trennen" zu aktivieren. Andernfalls ist es sehr einfach und wählen Sie "Trennen" aus dem Menü.

Bildbeschreibung hier eingeben


0

Dieser Befehl sollte alle Verbindungen trennen und dann das Trennen ermöglichen.

ALTER DATABASE SET SINGLE_USER WITH ROLLBACK_IMMEDIATE

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.