Назад | Перейти на главную страницу

База данных «XXX» находится в процессе перехода. Попробуйте заявление позже

Я пытаюсь подключиться к базе данных sql-сервера, я получаю эту ошибку

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

Сегодня я отменил длинный запрос, но по какой-то причине я не могу восстановить базу данных. Что я могу сделать?

Иногда это может произойти, если вы попытаетесь отключить БД или выполнить некоторые другие операции, и они не удастся. Иногда блокировку можно снять, если закрыть экземпляр SSMS, который попытался выполнить операцию, а затем снова открыть его. Закройте и снова откройте все экземпляры SSMS, подключенные к серверу.

Это также может произойти, если вы попытаетесь отключить БД во время выполнения длинного запроса. Проверьте монитор активности и попробуйте отключить все долго выполняющиеся запросы, если это возможно и безопасно.

Если ничего из вышеперечисленного не работает, закройте все экземпляры SSMS, а затем перезапустите SQL через диспетчер конфигурации SQL Server. Обычно это излечивает, хотя сначала БД может быть в режиме восстановления.

Как ни странно, я решил эту проблему, просто закрыв SSMS и открыв заново.

При закрытии SSMS у меня тоже работало, в зависимости от проблемы вы можете попробовать следующее:

ALTER DATABASE [Name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [Name] SET MULTI_USER

Эта идея возникла из этого вопроса (и из личного опыта): https://stackoverflow.com/questions/4230290/sql-server-2008-how-do-i-disconnect-everyone-from-my-db

В SQL Server Management Studio есть опция для перевода базы данных в режим онлайн / офлайн. Но для этого требуется разрешение администратора.

Чтобы получить к нему доступ, щелкните правой кнопкой мыши по базе данных -> Задачи -> Подключить.

Я знаю, что на него уже ответили, но просто добавлю; Если ситуация такова, что вы пытались перевести его в автономный режим, а затем это не удалось, вы можете попробовать убить SPID, который пытается изменить состояние базы данных.

Выполните sp_who или sp_who2 и найдите SPID, который вращается в БД, пытаясь отключить базу данных. Убейте этот SPID, и у вас останется либо онлайн, либо офлайн БД, которая НЕ находится в переходном состоянии.