首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 從備份檔 (.bak) 導入資料至現有資料庫:臨時庫中轉法

     編輯:MySQL 資料庫相關知識

需將某 .bak 備份檔中的部分資料表導入現有生產資料庫,且不覆蓋原有資料。標準做法:還原至臨時資料庫 → DTS/SSIS 導入目標庫 → 刪除臨時庫。

操作步驟 (企業管理器 / SSMS 圖形化)

  1. 建立臨時資料庫 Temp_Restore。
  2. 右鍵 Temp_Restore → 所有工作 → 還原資料庫。
  3. 「從裝置」 → 選取備份檔 A1.bak。
  4. 選項頁:勾選 在現有資料庫上強制還原,修改「還原為」路徑避免衝突 (如 C:\Temp_Restore.mdf/.ldf)。
  5. 確定還原,臨時庫現有備份檔所有物件。
  6. 右鍵目標資料庫 (如 DOE) → 所有工作 → 導入資料 (DTS 導入/導出精靈)。
  7. 資料來源選 Temp_Restore,目的地預設 DOE,勾選欲導入的資料表,完成精靈。
  8. 驗證 DOE 資料正確後,刪除臨時資料庫 Temp_Restore。

T-SQL 腳本化版本 (可排程)

-- 1. 還原至臨時庫
RESTORE DATABASE Temp_Restore
FROM DISK = 'C:\Backup\A1.bak'
WITH MOVE 'A1_Data' TO 'C:\Data\Temp_Restore.mdf',
     MOVE 'A1_Log'  TO 'C:\Data\Temp_Restore.ldf',
     REPLACE, STATS = 10;

-- 2. 導入指定資料表 (範例:TableX)
INSERT INTO DOE.dbo.TableX (col1, col2, col3)
SELECT col1, col2, col3 FROM Temp_Restore.dbo.TableX;

-- 3. 清理
DROP DATABASE Temp_Restore;

注意事項

  • 備份檔若含多資料庫,還原時需指定 FILE = n。
  • 導入前檢查欄位定義、主鍵、外鍵相容性,必要時先 SET IDENTITY_INSERT ON。
  • 大量資料建議分批次導入,避免記錄檔暴漲與長時間鎖定。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved