需將備份還原為不同名稱的資料庫 (如:建立測試環境、副本驗證),且檔案路徑必須變更,避免與原資料庫衝突。
RESTORE FILELISTONLY FROM MyNwind2;
輸出關鍵欄位:
LogicalName:邏輯檔案名 (如 MyNwind2_data, MyNwind2_log)PhysicalName:原始實體路徑Type:D=資料檔, L=記錄檔RESTORE DATABASE MyNwind2_Test
FROM MyNwind2
WITH RECOVERY,
MOVE 'MyNwind2_data' TO 'D:\MyData\MyNwind2_Test_data.mdf',
MOVE 'MyNwind2_log' TO 'D:\MyData\MyNwind2_Test_log.ldf';
GO
WITH RECOVERY:完成還原後立即上線 (預設),若後續還有記錄備份需套用則用 NORECOVERY。MOVE 子句,指定新實體路徑。USE master;
GO
-- 1. 取得檔案清單
RESTORE FILELISTONLY FROM MyNwind2;
GO
-- 2. 還原為新資料庫
RESTORE DATABASE MyNwind2_Test
FROM MyNwind2
WITH RECOVERY,
MOVE 'MyNwind2_data' TO 'D:\MyData\MyNwind2_Test_data.mdf',
MOVE 'MyNwind2_log' TO 'D:\MyData\MyNwind2_Test_log.ldf';
GO
-- 3. 驗證
SELECT name, filename FROM MyNwind2_Test..sysfiles;
| 錯誤 | 原因 | 對策 |
|---|---|---|
| Logical file 'xxx' is not part of database | 邏輯名拼寫錯誤 | 嚴格依 FILELISTONLY 輸出複製 |
| Access denied / path not found | 目錄不存在或權限不足 | 建立目錄、授予服務帳號寫入權限 |
| File already exists | 目標路徑已有同名檔案 | 刪除舊檔或指定不同檔名 |