2014-10-28 85 views
1

我試圖將AdventureWorks2012_Data.mdf數據庫文件附加到我的SQL Server 2012數據庫。無法將數據庫附加到SQL Server 2012原因未找到.log

我收到此錯誤:

TITLE: Microsoft SQL Server Management Studio

Attach database failed for Server 'USER-PC'. (Microsoft.SqlServer.Smo)

For help, click: 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

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

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)

也許信息是明確的,我沒有.log文件,是的,我沒有它。但是它有必要嗎?或者還有另外一件事?我該如何解決這個問題?

+0

通過'sp_attach_single_file_db'嘗試 – 2014-10-28 14:55:50

+0

@AlexK。你的意思是在我的sql server 2012中執行那個查詢? – 2014-10-28 14:56:15

+0

請參閱http://msdn.microsoft.com/en-gb/library/ms174385。aspx – 2014-10-28 14:56:48

回答

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的*.LDF日誌文件的連接(新*.LDF文件將在數據庫中創建)

enter image description here

UPDATE

:如下面的屏幕截圖所示的工作室

你得到的錯誤:

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的數據庫,或者使用最新版本升級SQL Server。

您的SQL Server istance的版本確實是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來解決問題。

+0

我得到這個錯誤數據庫'AdventureWorksDW2012'無法打開,因爲它是版本706.此服務器支持版本661和更早版本。降級路徑不受支持。 無法打開新數據庫'AdventureWorksDW2012'。 CREATE DATABASE被中止。 (Microsoft SQL Server,錯誤:948)' – 2014-10-28 15:32:06

+0

@MarcoDinatsoli現在的錯誤不同。您正試圖將SQL Server 2012(版本706)數據庫附加到SQL Server 2008版本(版本661)。出於這個原因,你不能執行這個降級。下載AdventureWorks2008數據庫代替SQL Server 2008。 – 2014-10-28 15:38:53

+0

現在我正在使用sql server 2012,但也許錯誤我選擇sql seerver 2008的設置?我不知道。但我使用的是sql server 2012 not 2008 – 2014-10-28 15:42:40

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 「文件未找到」。基於此,我猜想,A)文件不存在,或者B)名稱或路徑拼寫錯誤。

+0

但我通過SQL管理工作室的Windows UI進行連接時,右鍵單擊數據庫並選擇附加 – 2014-10-28 15:19:10

+0

而您認爲不生成某些SQL代碼?提示 - 它的確如此。您在UI中執行的所有操作實際上都是發送到服務器的語句。 – TomTom 2014-10-28 15:29:30

1

(我太慢上面的答案是什麼我談論)

FYI這個答案假定您使用附加數據庫對話框。

確保你已經告訴了sql manager在ldf文件的位置。即使您未將日誌附加到mdf,它也會填寫日誌條目。

你會在下面的框中看到它與添加按鈕。如果你沒有它,你可以從附件中刪除日誌。 Sql會創建一個新的日誌,你可以快速移動。

相關問題