Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

passez à la base de données sur 'en ligne' et définissez db sur 'multi-utilisateur'

^ C'est le problème que vous devez résoudre.

Assurez-vous que vous n'êtes pas DANS cette base de données. Fermez toutes les fenêtres de requête qui y sont connectées, fermez les détails de l'explorateur d'objets, fermez SSMS et rouvrez-le sans l'explorateur d'objets connecté à ce serveur, etc. Exécutez ceci :

USE [master];
GO

ALTER DATABASE mydb SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
USE mydb;
GO

Cela devrait vous permettre de le mettre en ligne, puis vous exécuterez les commandes que vous avez répertoriées.

Cependant :

  • Cela peut prendre plus de temps que vous ne le pensez, en fonction de l'activité de restauration des sessions que vous supprimez.
  • Il est toujours possible que lorsque vous le définissez sur un seul utilisateur, un autre processus soit plus rapide que vous et utilise cette connexion unique. Si vous trouvez que cela se produit, vous pouvez savoir qui il utilise sp_whoisactive ou des DMV comme sys.dm_tran_locks - il se peut que vous deviez suspendre les applications qui se connectent et/ou arrêter l'Agent SQL Server.