使用 REPLACE 恢復資料庫

當你嘗試從另一臺伺服器還原資料庫時,你可能會收到以下錯誤:

錯誤 3154:備份集包含現有資料庫以外的資料庫的備份。

在這種情況下,你應該使用 WITH REPLACE 選項將資料庫替換為備份中的資料庫:

RESTORE DATABASE WWIDW
FROM DISK = 'C:\Backup\WideWorldImportersDW-Full.bak'
WITH REPLACE

即使在這種情況下,你可能會收到錯誤,指出檔案不能位於某個路徑上:

訊息 3156,級別 16,狀態 3,行 1 檔案’WWI_Primary’無法恢復為’D:\ Data \ WideWorldImportersDW.mdf’。使用 WITH MOVE 標識檔案的有效位置。

發生此錯誤可能是因為你的檔案未放在新伺服器上存在的同一資料夾路徑上。在這種情況下,你應該將單個資料庫檔案移動到新位置:

RESTORE DATABASE WWIDW
FROM DISK = 'C:\Backup\WideWorldImportersDW-Full.bak'
WITH REPLACE,
MOVE 'WWI_Primary' to 'C:\Data\WideWorldImportersDW.mdf',
MOVE 'WWI_UserData' to 'C:\Data\WideWorldImportersDW_UserData.ndf',
MOVE 'WWI_Log' to 'C:\Data\WideWorldImportersDW.ldf',
MOVE 'WWIDW_InMemory_Data_1' to 'C:\Data\WideWorldImportersDW_InMemory_Data_1'

使用此語句,你可以將資料庫替換為移動到新位置的所有資料庫檔案。