Baza danych „XXX” jest w fazie przejściowej. Wypróbuj oświadczenie później

27

Próbuję połączyć się z bazą danych serwera SQL, otrzymuję ten błąd

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

anulowałem dzisiaj długie zapytanie, ale z jakiegoś powodu nie mogę odzyskać bazy danych. Czy jest coś, co mogę zrobić?

Rod Johnson
źródło
4
Przy takim pytaniu naprawdę powinieneś sprecyzować, jaki serwer SQL i jego wersja. Zgaduję, że masz na myśli jeden z serwerów Microsoft SQL, ale nie powinniśmy zgadywać.
John Gardeniers
Sprawdź to. To zadziałało dla mnie. stackoverflow.com/a/27036481/4273753

Odpowiedzi:

40

Może się to czasem zdarzyć, jeśli spróbujesz przełączyć bazę danych w tryb offline lub wykonać pewne inne operacje, które się nie powiedzie. Czasami blokadę można usunąć, jeśli zamkniesz instancję SSMS, która podjęła próbę operacji, a następnie ponownie ją otworzysz. Zamknij i ponownie otwórz wszystkie instancje SSMS podłączone do serwera.

Może się również zdarzyć, jeśli spróbujesz przełączyć bazę danych w tryb offline, gdy uruchomione jest długie zapytanie. Sprawdź monitor aktywności i spróbuj zabić wszelkie długotrwałe zapytania, jeśli mają one zastosowanie i są bezpieczne.

Jeśli żadna z powyższych czynności nie działa, zamknij wszystkie instancje SSMS, a następnie uruchom ponownie SQL za pomocą SQL Server Configuration Manager. Zwykle to wyleczy, chociaż DB może początkowo być w trybie odzyskiwania.

phoebus
źródło
To jest takie dziwne. Czy wiesz, dlaczego tak się dzieje?
Krismorte
11

O dziwo, naprawiłem ten problem, po prostu zamykając SSMS i otwierając ponownie.

Josh
źródło
zbyt łatwe. pracował dla mnie.
greg121
Zamykanie SSMS i ponowne otwarcie również działało dla mnie.
Michael Bollhoefer,
1

W SQL Server Management Studio dostępna jest opcja przełączania bazy danych online / offline. Ale potrzebuje pozwolenia administracyjnego.

Aby uzyskać do niego dostęp, kliknij bazę danych prawym przyciskiem myszy -> Zadania -> Przejdź do trybu online.

rchacko
źródło
0

Wiem, że już na nie odpowiedziano, ale po prostu dodać; jeśli sytuacja jest taka, że ​​próbujesz przełączyć ją w tryb offline, a następnie się nie powiedzie, możesz spróbować zabić identyfikator SPID, który próbuje zmienić stan bazy danych.

Wykonaj sp_who lub sp_who2 i znajdź SPID, który obraca się na DB, próbując przełączyć bazę danych w tryb offline. ZABIJ ten SPID, a pozostaniesz z bazą danych online lub offline, która NIE jest w stanie przejściowym.

Jun Sato
źródło