无法将数据库附加到SQL Server 2012,因为找不到.log

时间:2014-10-28 14:49:24

标签: sql .net sql-server sql-server-2012

我正在尝试将AdventureWorks2012_Data.mdf数据库文件附加到我的SQL Server 2012数据库。

我收到此错误:

  

TITLE:Microsoft SQL Server Management Studio

     

为服务器' USER-PC'附加数据库失败。 (Microsoft.SqlServer.Smo)

     

如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.3000.0+((SQL11_PCU_Main).121019-1322+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

     

其他信息:

     

执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)

     

无法打开物理文件" C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorksDW2012_log.ldf"。操作系统错误2:" 2(无法检索此错误的文本。原因:15105)"。 (Microsoft SQL Server,错误:5120)

也许消息很清楚,我没有.log文件,是的,我没有。但是有必要吗?还是有另一件事?我该怎么解决呢?

3 个答案:

答案 0 :(得分:5)

当您没有数据库的*.LDF日志文件(例如AdventureWorks数据库)时,这是一个常见的错误。 SQL Server抱怨缺少*.LDF日志文件(通常与数据库*.MDF文件关联)。 执行以下T-SQL查询以仅考虑*.MDF文件附加数据库:

USE [master]
GO
CREATE DATABASE [AdventureWorksDW2012] ON 
( FILENAME = N'C:\Users\User\Desktop\ARPAD\AdventureWorks2012_Data.mdf' )
 FOR ATTACH
GO

或通过SQL Server Management Studio删除与*.LDF日志文件的连接(将为数据库创建新的*.LDF文件),如下面的屏幕截图所示:

enter image description here

<强>更新

您收到错误:

The database 'AdventureWorksDW2012' cannot be opened because it is version 706. This server supports version 661 and earlier. A downgrade path is not supported. Could not open new database 'AdventureWorksDW2012'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 948)

因为您尝试将SQL Server 2012(版本706)数据库文件附加到SQL Server 2008 istance(版本661)。因此,您cannot perform this downgrade。改为使用SQL Server 2008的Download the AdventureWorks2008数据库,或使用最新版本升级SQL Server。

SQL Server的版本确实是SQL Server 2008:Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) Apr 22 2011 19:23:43 Copyright (c) Microsoft Corporation Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)Download and install SQL Server 2012 Express解决问题。

答案 1 :(得分:2)

关键是这一行(为清晰起见而编辑):

Unable to open the physical file 
  "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW2012_log.ldf". 
  Operating system error 2: 
  "2(failed to retrieve text for this error. Reason: 15105)". 
  (Microsoft SQL Server, Error: 5120)

根据this page,操作系统错误2是&#34;找不到文件&#34;。基于此,我猜想,A)文件不存在,或B)名称或路径拼写错误。

答案 2 :(得分:1)

(我太慢,上面的答案就是我所说的)

仅供参考这个答案假定您使用附加数据库对话框。

确保你告诉sql manager ldf文件也在哪里。即使您没有使用mdf附加日志,它也会填写日志条目。

您会在带有添加按钮的框下方的框中看到它。如果没有,可以从附件中删除日志。 Sql会创建一个新的日志,你可以沿途愉快地移动。