La raison de ce problème est évidente (connexions à la base de données actuellement ouvertes/actives), mais utilisez ce qui suit (googlez-le aussi pour le comprendre) et tout ira bien :
Alter Database YOURDB
SET SINGLE_USER With ROLLBACK IMMEDIATE
GO
De toute évidence, il faut remplacer YOURDDB
avec le nom de votre base de données et exécutez-la contre la base de données principale.
Oh, et juste au cas où, si vous êtes "coincé" en mode utilisateur unique, ceci le défait :
Alter Database YOURDB
SET MULTI_USER With ROLLBACK IMMEDIATE
GO
J'espère que cela vous aidera.
EDITAR:
Vous pouvez également suivre ce pour voir d'où viennent les connexions et d'autres informations :
J'ai testé cela tout en ayant des services qui se reconnectaient à la base de données base de données. J'ai découvert que vous deviez passer en mode utilisateur unique, puis lancer sp_who2 pour voir d'où venait la connexion unique d'où provenait la connexion et noter le SPID. Vous pouvez lancer la commande kill pour ce SPID et la restauration dans la même même transaction, et ça devrait marcher. Voici la séquence que j'ai utilisée :
UTILISER MASTER ALTER BASE DE DONNÉES NOM_DE_DONNÉES DÉFINIR SINGLE_USER AVEC ROLLBACK IMMÉDIATEMENT
-Cela fera en sorte qu'une seule connexion à la base de données puisse être base de données. -Lancez la commande suivante pour voir d'où proviennent les connexions récurrentes à la base de données proviennent.
EXEC SP_WHO2
-Vérifiez cette liste, en regardant sous la colonne DBName. Si la base de données est base de données, vérifiez les colonnes ProgramName et nom d'hôte pour voir qui qui tente de se connecter. S'il ne s'agit pas d'un service ou d'une autre application qui se reconnecte automatiquement et qui peut être arrêtée, notez-le. automatiquement et qui peut être arrêtée, notez le numéro dans la colonne SPID pour couper la la connexion, et commencer immédiatement la sauvegarde. Remplacez SPID ci-dessous par seulement le numéro.
KILL SPID RESTORE DATABASE NOM DE LA BASE DE DONNÉES À PARTIR DU DISQUE = ' X:\PATHTO\BACKUP.BAK GO
-Si cela se termine avec succès, nous pouvons remettre la base de données nouvellement restaurée en mode multi-utilisateur.
ALTERNER LA BASE DE DONNÉES NOM DE LA BASE DE DONNÉES MULTI_USER AVEC ROLLBACK IMMÉDIAT GO