如何将MDF文件附加到具有相同LDF名称的服务器?

时间:2013-05-28 22:54:34

标签: sql sql-server tsql

我有一个.MDF数据库备份。我需要来自此.MDF的一些信息。

当我尝试附加此.MDF时,它需要与其一起提供的日志文件。

我不需要日志文件,但它坚持使用.LDF文件。

我试图将它指向与其相同的日志文件,但我收到错误:

enter image description here

(因为当前版本的数据库正在使用它。)

我无法将其附加到其他服务器,因为它最初是在SQL Server 2012上,而且是我唯一的SQL Server 2012服务器。

如何在没有.MDF的情况下重新附加.LDF

我正在添加文本版本以防其他人正在寻找此问题的解决方案:

  

Msg 5120,Level 16,State 101,Line 1   无法打开物理文件“D:\ SQL Logs .... Custom_log.ldf”。操作系统错误32:“32(进程无法访问该文件,因为它正被另一个进程使用。)”   文件激活失败。物理文件名“D:\ SQL Logs .... Custom_log.ldf”可能不正确   无法重建日志,因为数据库关闭时没有打开的事务/用户,数据库没有检查点,或者数据库是只读的。如果由于硬件或环境故障手动删除或丢失事务日志文件,则可能发生此错误。

     

Ms Ms 1813,Level 16,State 2,Line 1
  无法打开新数据库'TestDb'。 CREATE DATABASE被中止。

我不知道这是否相关,但如果我不需要,我实际上不需要附加.MDF文件。我只需要从那里读一张桌子。

2 个答案:

答案 0 :(得分:4)

如果您使用2012年  使用"FOR ATTACH_FORCE_REBUILD_LOG"

  CREATE DATABASE [XXXdatabasname] ON 
( FILENAME = N'databaseXXXFilePath.mdf' )
 FOR ATTACH_FORCE_REBUILD_LOG

答案 1 :(得分:-2)

您可以在没有相应LDF文件的情况下附加MDF文件。为此,我会使用sp_attach_single_file_db