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

标签 sql sql-server tsql

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

当我尝试附加此 .MDF 时,它需要随附的日志文件。

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

我试图将它指向它附带的同一个日志文件,但我收到错误:

enter image description here

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

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

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

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

Msg 5120, Level 16, State 101, Line 1
Unable to open the physical file "D:\SQL Logs....Custom_log.ldf". Operating system error 32: "32(The process cannot access the file because it is being used by another process.)".
File activation failure. The physical file name "D:\SQL Logs....Custom_log.ldf" may be incorrect.
The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

Msg 1813, Level 16, State 2, Line 1
Could not open new database 'TestDb'. CREATE DATABASE is aborted.

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

最佳答案

如果你使用 2012 使用 "FOR ATTACH_FORCE_REBUILD_LOG"

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

关于sql - 如何将 MDF 文件附加到具有相同 LDF 名称的服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16802822/

相关文章:

MySQL - 在 A 列上联接表,除非 A 列 = x,然后在 b 列上联接

sql - 如何创建一个使用多个列中不同值的聚合作为参数的表?

sql-server - HOLDLOCK 与 UPDLOCK

sql-server - 是否可以将 Like 与 ALL 关键字一起使用

sql - 冒险作品说明

sql-server - 在 SQL Select 语句中读取 XML 值

sql - 如何编辑具有重复键的行

c# - 从 DbType 获取 sql 类型名称

sql - 精度和比例命名背后的原因是什么?

PHP mysqli 搜索多个表