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

Sql 如何将MDF文件附加到具有相同LDF名称的服务器?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个.MDF数据库备份。我需要这个.MDF中的一些信息 当我尝试附加此.MDF时,它需要附带的日志文件 我不需要日志文件,但它坚持使用.LDF文件 我试图将它指向它附带的同一个日志文件,但出现了错误: (因为当前版本的数据库正在使用它。) 我无法将其连接到其他服务器,因为它最初位于SQL server 2012上,而这是我唯一的SQL server 2012服务器 如何在没有.LDF的情况下重新连接.MDF 我正在添加一个文本版本,以防其他人正在搜索此问题的解决方案: Msg 5120,第

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

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

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

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

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

我无法将其连接到其他服务器,因为它最初位于SQL server 2012上,而这是我唯一的SQL server 2012服务器

如何在没有
.LDF
的情况下重新连接
.MDF

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

Msg 5120,第16级,状态101,第1行

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

Msg 1813,第16级,第2状态,第1行
无法打开新数据库“TestDb”。创建数据库已中止


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

您可以附加MDF文件,而不需要相应的LDF文件。要做到这一点,如果您使用2012,我将使用

使用
“附加\u强制\u重建\u日志”


无法打开物理文件“.\u log.ldf”。操作系统错误32:“32(该进程无法访问该文件,因为它正被另一进程使用)。”。文件激活失败。物理文件名“.\u log.ldf”可能不正确。无法重建日志,因为数据库关闭时存在打开的事务/用户、数据库未出现检查点或数据库为只读。如果由于硬件或环境故障而手动删除或丢失事务日志文件,则可能会发生此错误。无法打开新数据库“TestDb”。“创建数据库”已中止。我已在此处尝试了所有3个建议:似乎您没有正确分离它,因此文件的状态不一致,无法重新连接它。MDF文件不是备份。如果需要备份,请运行备份命令。你能解释一下“因为当前版本的数据库正在使用它”是什么意思吗?您的意思是,您正在尝试附加MDF文件,而LDF已存在并正在使用相同的名称?如果是这种情况,为什么不尝试重命名MDF并附加它,这样它就不会尝试创建同名LDF?@ElectricLlama我有一个数据库,我有一个数据库的旧MDF。我正试图从旧的MDF中抢一张桌子。这有意义吗?在您尝试附加MDF之前,SQL Server上是否已经存在文件
D:\SQL Logs\..Custom_log.ldf
?您肯定需要将MDF附加到数据库服务器以取出表,因此,让我们集中精力在无错误地附加MDF上无法重建日志,因为数据库关闭时存在打开的事务/用户、数据库未出现检查点或数据库为只读。如果由于硬件或环境故障而手动删除或丢失事务日志文件,则可能会发生此错误。”
  CREATE DATABASE [XXXdatabasname] ON 
( FILENAME = N'databaseXXXFilePath.mdf' )
 FOR ATTACH_FORCE_REBUILD_LOG