我正在尝试将AdventureWorks2012_Data.mdf
数据库文件附加到我的SQL Server 2012数据库。
我收到此错误:
TITLE:Microsoft SQL Server Management Studio
为服务器' USER-PC'附加数据库失败。 (Microsoft.SqlServer.Smo)
其他信息:
执行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
文件,是的,我没有。但是有必要吗?还是有另一件事?我该怎么解决呢?
答案 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
文件),如下面的屏幕截图所示:
<强>更新强>
您收到错误:
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会创建一个新的日志,你可以沿途愉快地移动。