2010-12-07 70 views
0

當所以,當我嘗試此代碼(每次一行):錯誤克隆一個SQL Server數據庫

BACKUP DATABASE [test] TO DISK = N'C:\test\test.bak' WITH INIT , NOUNLOAD , NAME = N'Test backup', NOSKIP , STATS = 10, NOFORMAT 
RESTORE DATABASE [test2] FROM DISK = N'C:\test\test.bak' WITH FILE = 1, MOVE N'test_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test2.MDF', MOVE N'test_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test2_log.LDF', NOUNLOAD, REPLACE, STATS = 10 

第一線工作,創建.bak文件和查詢成功。然後我嘗試第二線以上,而我得到這個錯誤:

Msg 3234, Level 16, State 2, Line 1 
Logical file 'test_Data' is not part of database 'test2'. Use RESTORE FILELISTONLY to list the logical file names. 
Msg 3013, Level 16, State 1, Line 1 
RESTORE DATABASE is terminating abnormally. 

,我試圖來自here的代碼。

任何想法我做錯了什麼?

回答

3

'Test_Data'很可能不是包含已備份的數據庫中的數據的邏輯文件的名稱。根據建議使用RESTORE FILELISTONLY來確定此文件的名稱 - 或者右鍵單擊從中進行備份的數據庫,然後查看屬性 - 您可以在其中查看與數據庫關聯的文件的名稱。

如果'Test_Data'正確的邏輯文件名,那麼很可能您在一個.bak文件中存儲了多個備份。嘗試通過SSMS而不是T-SQL進行恢復,以更好地感受您正在處理的內容 - 您始終可以編寫恢復腳本,而不是運行它,以查看應該如何編寫腳本。

+0

謝謝你親切的先生! – erikvold 2010-12-07 18:33:53