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?
sql-server
Rod Johnson
la source
la source
Réponses:
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.
la source
Curieusement, j'ai résolu ce problème en fermant simplement SSMS et en rouvrant.
la source
La fermeture de SSMS a également fonctionné pour moi, selon le problème, vous pouvez essayer ceci:
Cette idée est venue de cette question (et de mon expérience personnelle): /programming/4230290/sql-server-2008-how-do-i-disconnect-everyone-from-my-db
la source
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.
la source
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.
la source