Получилась очень странная, раздражающая проблема. Каким-то образом экземпляр SQL Server 2008 R2, работающий на нашем сервере, несколько испортился.
Во-первых, мы заметили, что база данных, которую мы создали вчера, отсутствует. Итак, мы осмотрелись и обнаружили, что он все еще там, но оторван. Итак, мы попытались прикрепить mdf, но получили сообщение, похожее на The file is currently in use
.
Я думал, что это было странно, поэтому перезапустил SQL Server. То же самое ... хорошо, время для радикальных мер ... итак, я остановил службу, заархивировал mdf, запустил службу, разархивировал ее и попытался восстановить. Вышеприведенное сообщение пропало, но потом я получил:
Невозможно присоединить базу данных с тем же именем, что и существующая база
Уч. Конечно, это не отображается в проводнике баз данных, так что понятия не имею, что происходит ... в крайнем случае:
DROP DATABASE [DatabaseName]
Конечно, это не сработало .. это говорит мне, что база данных не существует. Итак, я застрял ... в какой-то момент SQL Server думает, что база данных существует, а в другой момент думает, что БД не существует ... очевидно, он находится в состоянии путаницы.
Кто-нибудь видел это раньше? Есть идеи как это исправить?
sys.databases
?? Например,SELECT * FROM sys.databases
все еще список вашей базы данных?SELECT name, user_access_desc, state_desc FROM sys.databases
показывает?Ответы:
Правильно ... Я понял это ... какой-то клоун здесь (который не будет владеть им) переименовал БД, чтобы его имя в SSMS отличалось от имен файлов mdf и ldf ... и не просто немного отличалось ... . совершенно другой. ЛОЛ. Спасибо всем за ваши полезные предложения в любом случае.
источник
Если у вас нет разрешения на просмотр базы данных, это будут именно симптомы. База данных не будет отображаться в ваших представлениях. Вы уверены, что не просто запилили файл (ы) базы данных, к которой у вас не было доступа? Вы работаете как системный администратор?
Обновить
База данных была отключена или отключена ? Когда вы говорите,
So, we looked around and found that it was still there, but detached
что именно вы говорите? Где вы смотрели, что вы нашли? Выявление того, что база данных была «отсоединена» (в отличие, скажем, от удаления), не является тривиальным.источник
Запрос sys.database. Возможно, база данных была создана с пробелом в конце ее имени. Запустите приведенный ниже код и обратите внимание, что вы можете создать только одну из баз данных, и не имеет значения, какую из них вы создаете первыми, вы можете создать только эту.
источник
Запустите 'DBCC CHECKDB' на master, msdb и на самой базе данных, чтобы увидеть, что там написано. Может потребоваться перевести систему в однопользовательский режим, чтобы dbcc работал в режиме восстановления с потерей данных. Или просто восстановите ваши резервные копии master и msdb в зависимости от ситуации.
источник
Для меня это было решено обновлением баз данных. Я сделал несколько неудачных восстановлений и увидел db, который не удалось удалить, с тем же сообщением об ошибке: «База данных не существует на сервере».
источник
У меня была такая же проблема с использованием SQL Server 2008r2.
Я пытался дублировать базу данных (версия foo) и в результате запутал сервер SQL. SQL Server Management Studio считал, что база данных существует (MDF и LDF сделали), но основная база данных не считает, что база данных существует (не отображается в sys.databases)
Хитрость заключалась в том, чтобы переименовать файлы MDF и LDF, затем создать базу данных из SQL,
create database [db name here]
затем удалить базу данных и, наконец, присоединить файлы MDF и LDF ранее.источник