La raison de cette question est de soi (connexions à la base de données actuellement ouvert/actif), mais utiliser les éléments suivants (google aussi si vous le comprenez) et ce sera bien:
Alter Database YOURDB
SET SINGLE_USER With ROLLBACK IMMEDIATE
GO
De toute évidence, remplacez le YOURDDB
par le nom de votre base de données et exécutez-le par rapport à la base de données principale.
Oh, et juste Incase, si vous obtenez 'coincé' en mode utilisateur unique, cela défaire:
Alter Database YOURDB
SET MULTI_USER With ROLLBACK IMMEDIATE
GO
Hope this helps.
EDIT:
Vous pouvez également suivre this, pour voir où les connexions sont à partir, et d'autres informations:
J'ai testé cela tout en ayant des services marchepieds qui se reconnecter à la base de données . J'ai trouvé que vous deviez mettre à Mode mono-utilisateur, puis exécutez sp_who2 à voir où la seule connexion était provenant de, et notez le SPID. Vous pouvez exécuter la commande kill pour ce SPID et la restauration dans la même transaction , et il doit passer par. Voici la séquence je:
USE MASTER ALTER DATABASE DATABASENAME SET SINGLE_USER AVEC ROLLBACK IMMEDIATE GO
-Ce fera en sorte qu'une seule connexion à la base de données peut être faite. - Exécutez la commande suivante pour voir d'où proviennent les connexions récurrentes à la base de données .
EXEC sp_who2
-Check cette liste, la recherche dans la colonne DBName. Si la base de données est répertoriée, vérifiez la colonne ProgramName et HostName pour voir qui est essayant de se connecter. -S'il ne s'agit pas d'un service ou d'une autre application qui se reconnecterait automatiquement et qui peut être arrêtée, notez le numéro dans la colonne SPID pour tuer la connexion et commencer immédiatement la sauvegarde . Remplacez SPID ci-dessous par juste le nombre.
KILL SPID RESTORE BASE DE DONNÉES DATABASENAME FROM DISK = 'X: \ PATHTO \ BACKUP.BAK 'GO
-Si cela se termine avec succès, nous pouvons rétablir la base de données nouvellement restaurée en mode multi-utilisateur.
ALTER DATABASE DATABASENAME SET MULTI_USER AVEC ROLLBACK IMMEDIATE GO
Ma base de données est dans 'D: \ SQL \ RRDB.mdf', je dois remplacer' MyDB' par le chemin complet ou juste 'RRDB.mdf'? –
Vous devriez juste avoir besoin de RRDB. – KeithS
Dans la réponse suivante, j'ai utilisé le chemin complet et cela a fonctionné. –