Я пытаюсь подключиться к базе данных 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, и у вас останется либо онлайн, либо офлайн БД, которая НЕ находится в переходном состоянии.