Comment détacher une base de données en cours d'utilisation?


14

Même si rien ne l'utilise, je ne peux pas détacher une base de données car elle est utilisée.

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

J'ai essayé de redémarrer et reçois le même message.

Réponses:


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

12

Avez-vous essayé de cocher la case «Supprimer les connexions» lorsque vous la détachez?


J'espérais plus pour une solution liée aux requêtes. Server Management Studio Express provoque très souvent un écran bleu sur ma machine. J'utilise donc un outil qui envoie simplement des requêtes au serveur.
Jack B Nimble

Un écran bleu est généralement lié à des problèmes matériels ou au niveau du système d'exploitation, et non à une application très spécifique telle qu'un outil de gestion de base de données. Je ne peux pas imaginer pourquoi ce programme particulier fait planter votre machine, mais c'est certainement un symptôme d'un problème grave sous-jacent.
Massimo

Il s'agit d'une combinaison de Visual Studio et de Server Management Studio Express, car j'ai vu le comportement sur 3 postes de travail différents. Cela peut provenir de l'exécution de plusieurs versions de Visual Studio à la fois, je sais que cela provoque un comportement bizarre dans IE7 lors de l'utilisation d'onglets.
Jack B Nimble

1
  1. Déconnectez-vous du serveur.
  2. Redémarrez le service SQL Server pour fermer toutes les connexions.
  3. Connectez-vous avec l'authentification Windows.
  4. Détachez facilement la base de données.

1

N'oubliez pas de cocher "Supprimer les connexions" dans la fenêtre "Détacher la base de données", sinon c'est très simple et choisissez simplement Détacher dans le menu, voir l'image ci-dessous:

entrez la description de l'image ici


0

Cette commande doit supprimer toutes les connexions, puis vous permettre de vous détacher.

ALTER DATABASE SET SINGLE_USER WITH ROLLBACK_IMMEDIATE

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.