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

27

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

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

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

Род Джонсон
источник
4
С таким вопросом, как этот, вы действительно должны определиться с тем, какой SQL-сервер и его версия. Я предполагаю, что вы имеете в виду один из серверов Microsoft SQL, но мы не должны догадываться.
Джон Гарденье
Проверьте это. Это сработало для меня. stackoverflow.com/a/27036481/4273753

Ответы:

40

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

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

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

Феб
источник
Это так странно. Вы знаете, почему это происходит?
Krismorte
11

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

мистифицировать
источник
слишком легко. работал на меня.
greg121
Закрытие SSMS и повторное открытие также помогли мне.
Майкл Болхофер
3

Хотя закрытие SSMS тоже работает для меня, в зависимости от проблемы, вы можете попробовать это:

ALTER DATABASE [Name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [Name] SET MULTI_USER

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

Watki02
источник
1

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

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

rchacko
источник
0

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

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

Джун Сато
источник