意外删除 mdf 文件后无法在 SQL Server Management Studio 中分离数据库

意外删除 mdf 文件后无法在 SQL Server Management Studio 中分离数据库

我正在处理本地计算机上附加的一堆 *.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. 再次附加数据库

答案2

在这种情况下,你可以运行

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')

代替数据库名称使用您的数据库名称。

在此基础上,您可以采取适当的行动。

相关内容