La base de données 'XXX' est en transition. Essayez la déclaration plus tard

27

im essayant de se connecter à une base de données de serveur sql j'obtiens cette erreur

Database 'XXX' is in transition. Try the statement later.

j'ai annulé une longue requête plus tôt dans la journée, mais pour une raison quelconque, je ne peux pas récupérer la base de données. Y a-t'il quelque chose que je puisse faire?

Rod Johnson
la source
4
Avec une question comme celle-ci, vous devez vraiment être précis sur ce que SQL Server et sa version. Je suppose que vous voulez dire l'un des serveurs Microsoft SQL, mais nous ne devrions pas avoir à deviner.
John Gardeniers du
Regarde ça. Cela a fonctionné pour moi. stackoverflow.com/a/27036481/4273753

Réponses:

40

Cela peut parfois arriver si vous essayez de mettre une base de données hors ligne ou d'effectuer certaines autres opérations et qu'elles échouent. Parfois, le verrou peut être effacé si vous fermez l'instance SSMS qui a tenté l'opération, puis la rouvrez. Fermez et rouvrez toutes les instances SSMS attachées au serveur.

Cela peut également se produire si vous essayez de mettre la base de données hors ligne pendant qu'une longue requête est en cours d'exécution. Vérifiez le moniteur d'activité et essayez de supprimer toutes les requêtes de longue durée, le cas échéant et en toute sécurité.

Si aucun des éléments ci-dessus ne fonctionne, fermez toutes les instances SSMS, puis redémarrez SQL via le Gestionnaire de configuration SQL Server. Habituellement, cela le guérira, bien que la base de données puisse être en mode de récupération au début.

phoebus
la source
C'est si étrange. Savez-vous pourquoi cela se produit?
Krismorte
11

Curieusement, j'ai résolu ce problème en fermant simplement SSMS et en rouvrant.

Josh
la source
trop facile. travaillé pour moi.
greg121
La fermeture de SSMS et la réouverture ont également fonctionné pour moi.
Michael Bollhoefer
1

Il existe une option disponible dans SQL Server Management Studio pour mettre une base de données en ligne / hors ligne. Mais il a besoin d'une autorisation administrative.

Pour y accéder, cliquez avec le bouton droit sur la base de données -> Tâches -> Mettre en ligne.

rchacko
la source
0

Je sais que c'est déjà répondu, mais juste pour ajouter; si la situation est telle que vous tentiez de la mettre hors ligne, puis qu'elle a échoué, vous pouvez essayer de tuer le SPID qui tente de modifier l'état de la base de données.

Effectuez sp_who ou sp_who2 et recherchez un SPID qui tourne sur la base de données en essayant de mettre la base de données hors ligne. TUEZ ce SPID et vous vous retrouvez avec une base de données en ligne ou hors ligne qui n'est PAS dans l'état de transition.

Jun Sato
la source