SQL Server me dit que la database est en cours d'utilisation mais ce n'est pas

SQL Server ne cesse de me dire qu'une database est en cours d'utilisation lorsque j'essaie de la supprimer ou de la restaurer, mais lorsque j'exécute cette requête de métadonnées:

select * from sys.sysprocesses where dbid in (select database_id from sys.databases where name = 'NameOfDb') 

Cela ne returnne rien.

Parfois, il returnnera 1 process qui est un waittype CHECKPOINT_QUEUE. Si j'essaye de tuer ce process, il ne me laissera pas (ne peut pas tuer un process de non-user).

Quelqu'un at-il une idée de ce qui ne va pas?

Il pourrait y avoir beaucoup de choses bloquant votre database. Par exemple, si vous avez une window de requête ouverte sur cette database, elle sera verrouillée par vous. Sans countr les access externes, comme une application Web sur IIS.

Si vous voulez vraiment forcer la suppression, vérifiez l'option fermer les connections existantes ou essayez d'arrêter manuellement le service de SQL Server.

J'aime ce script. Ne luttez pas avec le meurtre ..

 use master alter database xyz set single_user with rollback immediate restore database xyz ... alter database xyz set multi_user 

J'avais le même problème en essayant de restaurer une database à partir d'une sauvegarde. La solution pour moi était de vérifier que j'ai coché "Remplacer la database existante (WITH REPLACE)" et "Fermer les connections existantes à la database de destination" dans la page Options AVANT de faire la restauration. Voici une capture d'écran ci-dessous.

entrez la description de l'image ici