Не удается отсоединить базу данных в SQL Server Management Studio после случайно удаленного файла mdf

0

Я работаю с кучей * .mdf файлов, которые я прикрепляю на моем локальном компьютере. После того, как я случайно удалил папку, содержащую некоторые файлы * .mdf, я не могу просмотреть базы данных в SQL Management Studio и поэтому не могу их отсоединить.

При открытии SQLMS я получаю сообщение об ошибке:

Unable to open the physical file "D:\Foo\bar.mdf".
Operating error 5: "5(Access is denied)". (Microsoft SQL Server, Error: 5120)

У меня есть резервные копии файлов, и даже если я восстановлю файлы, я все равно получаю эту ошибку.

После восстановления файла по первоначальному пути я пытаюсь повторно присоединить базу данных из файла, но получаю ошибку:

Cannot attach a database with the same name as an existing database.

Но я не вижу предыдущей базы данных, поэтому не могу отсоединить ее.

Как мне отсоединить / удалить / удалить старую базу данных, чтобы я мог повторно прикрепить ее из файла?

Штеффен
источник

Ответы:

1

Ты должен попытаться:

  1. Остановка SQL Server
  2. Копирование файлов туда, где они должны были быть
  3. Запустите SQL Server

В противном случае вы можете попытаться сбросить базу данных

  1. (В SSMS в основной базе данных) DROP Database < DatabaseName >
  2. Копирование файлов туда, где они должны были быть
  3. Присоедините базу данных снова
HeXanon
источник
Спасибо! Я пытался остановить и запустить базу данных ранее, но я мог забыть скопировать файлы обратно или что-то еще. Однако теперь это сработало, и я смог удалить и повторно присоединить базы данных.
Штеффен
0

В этом случае вы можете запустить

select * from sys.databases

Чтобы проверить базы данных, которые существуют в вашем экземпляре SQL Server. Если база данных существует, проверьте ее значение в столбце state_desc, возможно, он не подключен.

Затем выполните следующее, чтобы увидеть, где находятся его файлы:

SELECT type_desc, name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('Db_Name')

Замените Db_Name именем вашей базы данных.

Исходя из этого, вы можете предпринять адекватные действия.

Милена Петрович
источник