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ć?
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ć?
Odpowiedzi:
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.
O dziwo, naprawiłem ten problem, po prostu zamykając SSMS i otwierając ponownie.
Podczas zamykania SSMS również działało dla mnie, w zależności od problemu, możesz spróbować:
ALTER DATABASE [Name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [Name] SET MULTI_USER
Ten pomysł pochodzi z tego pytania (i osobistych doświadczeń): /programming/4230290/sql-server-2008-how-do-i-disconnect-everyone-from-my-db
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.