找不到原因,无法将数据库附加到SQL Server 2012。日志

找不到原因,无法将数据库附加到SQL Server 2012。日志,sql,.net,sql-server,sql-server-2012,Sql,.net,Sql Server,Sql Server 2012,我正在尝试将AdventureWorks2012_Data.mdf数据库文件附加到我的SQL Server 2012数据库 我得到这个错误: 标题:Microsoft SQL Server管理工作室 为服务器“USER-PC”连接数据库失败。Microsoft.SqlServer.Smo 有关帮助,请单击: 其他信息: 执行Transact-SQL语句或批处理时发生异常。Microsoft.SqlServer.ConnectionInfo 无法打开物理文件C:\Program Files\Mic

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

我得到这个错误:

标题:Microsoft SQL Server管理工作室

为服务器“USER-PC”连接数据库失败。Microsoft.SqlServer.Smo

有关帮助,请单击:

其他信息:

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

无法打开物理文件C:\Program Files\Microsoft SQL Server\MSSQLS11.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW2012\u log.ldf。操作系统错误2:检索此错误的文本失败。理由:15105。Microsoft SQL Server,错误:5120


也许消息很清楚,我没有.log文件,是的,我没有。但是有必要拥有它吗?还是还有别的事?我怎样才能解决这个问题呢?

关键是为了清晰起见编辑了这一行:

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)

根据,未找到操作系统错误2文件。基于此,我猜可能是A文件不在那里,或者B名称或路径拼写错误。

关键是为了清晰起见编辑了这一行:

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)

根据,未找到操作系统错误2文件。基于此,我猜可能是A文件不在那里,或者B名称或路径拼写错误。

如果您的数据库没有任何*.LDF日志文件(如AdventureWorks数据库),这是任何人都可能遇到的常见错误。SQL Server抱怨通常与数据库*.MDF文件关联的*.LDF日志文件丢失。 仅考虑*.MDF文件,执行以下T-SQL查询以附加数据库:

或删除与*.LDF日志文件的连接。将通过SQL Server Management Studio为数据库创建一个新的*.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。因为这个原因,你。改为使用SQL Server 2008 istance的数据库,或使用最新版本升级SQL Server istance

SQL Server istance的版本确实是SQL Server 2008:Microsoft SQL Server 2008 R2 RTM-10.50.1617.0 X64 2011年4月22日19:23:43版权所有c Microsoft Corporation Express Edition with Advanced Services 64位Windows NT 6.1 Build 7601:Service Pack 1。
解决此问题。

当您的数据库没有任何*.LDF日志文件(如AdventureWorks数据库)时,这是任何人都可能遇到的常见错误。SQL Server抱怨通常与数据库*.MDF文件关联的*.LDF日志文件丢失。 仅考虑*.MDF文件,执行以下T-SQL查询以附加数据库:

或删除与*.LDF日志文件的连接。将通过SQL Server Management Studio为数据库创建一个新的*.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。因为这个原因,你。改为使用SQL Server 2008 istance的数据库,或使用最新版本升级SQL Server istance

SQL Server istance的版本确实是SQL Server 2008:Microsoft SQL Server 2008 R2 RTM-10.50.1617.0 X64 2011年4月22日19:23:43版权所有c Microsoft Corporation Express Edition with Advanced Services 64位Windows NT 6.1 Build 7601:Service Pack 1。
解决这个问题。

我太慢了,上面的答案就是我要说的

仅供参考,此答案假设您正在使用“附加数据库”对话框

确保您已经告诉sql manager ldf文件也在哪里。即使您没有使用mdf附加日志,它也会为日志填充一个条目


您将在“添加”按钮下方的框中看到它。如果没有日志,您可以从附件中删除日志。Sql将创建一个新日志,您可以愉快地前进。

我太慢了,上面的答案就是我要说的

仅供参考,此答案假设您正在使用“附加数据库”对话框

确保您已经告诉sql manager ldf文件也在哪里。即使您没有使用mdf附加日志,它也会为日志填充一个条目


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

通过sp\u attach\u single\u文件进行尝试_db@AlexK. 您的意思是在我的sql server 2012中执行该查询?请参阅@AlexK。我尝试了这个sp_attach_single_file_db[@dbname=]'AdventureWorks2012_Data',[@physname=]'C:\Users\User\Desktop\ARPAD\AdventureWorks2012_Data.mdf',但是我得到了这个错误:“AdventureWorks2012_Data”附近的语法不正确。执行sp_attach_single_file_db'AdventureWorks2012_D
ata',C:\Users\User\Desktop\ARPAD\AdventureWorks2012\u Data.mdf'通过sp\u attach\u单文件尝试_db@AlexK. 您的意思是在我的sql server 2012中执行该查询?请参阅@AlexK。我尝试了这个sp_attach_single_file_db[@dbname=]'AdventureWorks2012_Data',[@physname=]'C:\Users\User\Desktop\ARPAD\AdventureWorks2012_Data.mdf',但我得到了这个错误:“AdventureWorks2012_Data”附近的语法不正确。执行sp_attach_single_file_db'AdventureWorks2012_Data',“C:\Users\User\Desktop\ARPAD\AdventureWorks2012\u Data.mdf”但当您右键单击数据库并选择“附件”时,我正在通过sql管理工作室的windows UI进行附加,您认为这不会生成一些sql代码吗?提示-是的。您在UI中所做的一切实际上都是发送到服务器的语句。但是,当您右键单击数据库并选择“附加”时,我正在通过sql Management studio的windows UI附加。您认为这不会生成一些sql代码吗?提示-是的。您在UI中执行的所有操作实际上都是发送到服务器的语句。我遇到了以下错误:“数据库”AdventureWorksDW2012“无法打开,因为它是706版本。此服务器支持版本661和更早版本。不支持降级路径。无法打开新数据库“AdventureWorksDW2012”。创建数据库已中止。Microsoft SQL Server,错误:948`@MarcoDinatsoli错误现在不同了。您正在尝试将SQL Server 2012版本706数据库连接到SQL Server 2008 istance版本661。因此,您无法执行此降级。请为您的SQL Server 2008 istance下载AdventureWorks2008数据库。现在我使用的是SQL Server 2012,但可能是我错误地选择了SQL Server 2008的设置?我不知道。但我使用的是sql server 2012,而不是2008@MarcoDinatsoli错误很明显。您正在尝试将“较新”的数据库文件还原到“较旧”的SQL Server istance。实际上,我使用的是SQL Server 2012。真的吗?我遇到了一个错误,数据库“AdventureWorksDW2012”无法打开,因为它是706版。此服务器支持版本661和更早版本。不支持降级路径。无法打开新数据库“AdventureWorksDW2012”。创建数据库已中止。Microsoft SQL Server,错误:948`@MarcoDinatsoli错误现在不同了。您正在尝试将SQL Server 2012版本706数据库连接到SQL Server 2008 istance版本661。因此,您无法执行此降级。请为您的SQL Server 2008 istance下载AdventureWorks2008数据库。现在我使用的是SQL Server 2012,但可能是我错误地选择了SQL Server 2008的设置?我不知道。但我使用的是sql server 2012,而不是2008@MarcoDinatsoli错误很明显。您正在尝试将“较新”的数据库文件还原到“较旧”的SQL Server istance。实际上,我使用的是SQL Server 2012。真的真的。