2013-06-05 38 views
0

新的數據庫,我有一系列的手動工作:創建從備份改變MDF和LDF路徑

  1. 創建新的數據庫,指定替代.mdf.ldf文件位置。
  2. 在使用上面定義的替代路徑,並覆蓋一切

我怎樣才能做到這一點新的數據庫恢復以前的備份?我已經試過:

RESTORE DATABASE newdb 
FROM DISK = 'F:\Shared\newdb.bak' 
WITH MOVE 'newdb' TO 'G:\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\newdb.mdf', 
    MOVE 'newdb_log' TO 'G:\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\newdb_log.ldf', 
replace 

但我得到:

Logical file 'newdb' is not part of database 'newdb'.
Use RESTORE FILELISTONLY to list the logical file names.
RESTORE DATABASE is terminating abnormally.

如果我使用FILELISTONLY我有另一種類型的錯誤:

Incorrect syntax near the keyword 'with'. If this statement is a common table expression or an xmlnamespaces clause, the previous statement must be terminated with a semicolon.

+0

恢復FILELISTONLY數據庫和恢復數據庫FILELISTONLY –

+0

它是從磁盤恢復FILELISTONLY ......看到我的回答 –

回答

1

您需要使用找出邏輯名稱使用:

RESTORE FILELISTONLY 
FROM DISK = 'F:\Shared\newdb.bak' 

這會爲您提供備份中包含的所有邏輯文件及其邏輯名稱。

有了這些信息,您應該能夠正確構建您的RESTORE DATABASE命令。

有關更多詳細信息,請參閱relevant MSDN SQL Server Books Online documentation

+0

邏輯名稱完全不同於我的預期。 只有一個問題,我該如何對結果進行選擇?如果我只需要字段== D的邏輯名稱,我該怎麼辦? –