SQL Server備份文件bak,備份后還原出現錯誤3145,備份集中的數據庫備份與現有的 'xxx' 數據庫不同。
解決辦法如下:
1,新建一個與現有數據庫重名的數據庫。
如果您不知道數據庫名稱,別著急,執行下面語句得到備份文件的邏輯文件名:
use master; --用此語句得到備份文件的邏輯文件名 RESTORE FILELISTONLY FROM DISK = N'E:\database\LocalDB\school.bak'; --備份文件的物理路徑
上面的SQL命令執行結果是查詢出備份文件信息,邏輯文件名等。
--邏輯文件名看LogicalName字段,一般會有兩個文件,如:
--olddb --主邏輯文件名稱
--olddb_log --日志邏輯文件名稱
好了,根據邏輯文件名稱(即原數據庫名稱)新建數據庫。
2,在查詢窗口運行如下語句:
use master; RESTORE DATABASE Test --還原后數據庫的名稱 FROM DISK = 'E:\database\LocalDB\school.bak' --備份文件的物理路徑 WITH replace, MOVE N'Test' TO N'E:\database\LocalDB\Test.mdf', MOVE N'Test_Log' TO N'E:\database\LocalDB\Test_log.ldf'; --還原后邏輯文件和日志文件的物理路徑
從語句上來看,和在圖形界面的操作是一樣的,但是結果卻是語句運行成功,圖形界面怎么過不去。
還原語句執行結果如下:
已為數據庫 'dataname',文件 'panydb' (位于文件 1 上)處理了 808 頁。
已為數據庫 'dataname',文件 'panydb_log' (位于文件 1 上)處理了 1 頁。
正在將數據庫 'dataname' 從版本 539 轉換為當前版本 611。
數據庫 'dataname' 正在從版本 539 升級到版本 551。
數據庫 'dataname' 正在從版本 551 升級到版本 552。
數據庫 'dataname' 正在從版本 552 升級到版本 553。
數據庫 'dataname' 正在從版本 553 升級到版本 554。
數據庫 'dataname' 正在從版本 554 升級到版本 589。
數據庫 'dataname' 正在從版本 589 升級到版本 590。
數據庫 'dataname' 正在從版本 590 升級到版本 593。
數據庫 'dataname' 正在從版本 593 升級到版本 597。
數據庫 'dataname' 正在從版本 597 升級到版本 604。
數據庫 'dataname' 正在從版本 604 升級到版本 605。
數據庫 'dataname' 正在從版本 605 升級到版本 606。
數據庫 'dataname' 正在從版本 606 升級到版本 607。
數據庫 'dataname' 正在從版本 607 升級到版本 608。
數據庫 'dataname' 正在從版本 608 升級到版本 609。
數據庫 'dataname' 正在從版本 609 升級到版本 610。
數據庫 'dataname' 正在從版本 610 升級到版本 611。
RESTORE DATABASE 成功處理了 809 頁,花費 1.437 秒(4.606 MB/秒)。
3,點擊還原后的數據庫,右鍵“刷新”,果然還原成功。
ok,大功告成。
文章列表