首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2005

SQL Server 2005 與 2000 雙向資料遷移四大法:分離附加、備份還原、匯入匯出、指令碼

     編輯:SQL Server 2005

方向限制說明

  • 2000 → 2005: 全部四法皆可。
  • 2005 → 2000: 僅「匯入匯出精靈」與「指令碼+資料遷移」可行;分離附加、備份還原**不支援降級**。

方法一:分離/附加 (僅 2000→2005)

-- 2000 分離
EXEC sp_detach_db @dbname = 'dufei';

-- 複製 .mdf/.ldf 至 2005 機器

-- 2005 附加
EXEC sp_attach_db @dbname = 'dufei',
    @filename1 = 'C:\dufei_data.mdf',
    @filename2 = 'C:\dufei_log.ldf';

最快、保留所有物件/權限/統計資料,但**檔案格式升級後不可逆**,2005 附加後無法再在 2000 掛載。

方法二:備份/還原 (僅 2000→2005)

-- 2000 備份
BACKUP DATABASE DB1 TO DISK='C:\DB1.bak';

-- 2005 還原 (需指定 MOVE 避免路徑衝突)
RESTORE DATABASE DB1 FROM DISK='C:\DB1.bak'
WITH MOVE 'DB1_Data' TO 'C:\Data\DB1.mdf',
     MOVE 'DB1_Log'  TO 'C:\Data\DB1.ldf';

同樣不可逆,還原後資料庫內部版本號升級為 2005 (611/612)。

方法三:匯入/匯出精靈 (雙向通用)

  • SSMS / DTSWizard.exe → 來源/目的地可為 2000 或 2005 任意組合。
  • 支援篩選資料表、轉換資料類型、對應欄位。
  • **缺點**:不遷移登入、作業、代理程式、伺服器層級物件;大量資料較慢。

方法四:指令碼產生 + 資料遷移 (雙向通用)

  1. SSMS → 資料庫右鍵「工作」→「產生指令碼」→ 選擇物件類型 (資料表、預存程序、觸發器、檢視表等) → 輸出 .sql 檔。
  2. 目標伺服器執行指令碼建立結構描述。
  3. 再用「匯入/匯出精靈」或 BCP/SSIS 遷移資料。

優點:可審查/修改結構描述、支援跨版本降級。缺點:步驟較多、需手動處理相依順序。

選擇建議

場景推薦方法
2000→2005 整庫升級、追求最快分離/附加 或 備份/還原
2005→2000 降級/異構遷移匯入/匯出精靈 或 指令碼+資料
需轉換資料類型/篩選資料匯入/匯出精靈
需版本控管結構描述指令碼產生
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved