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

SQL Server 7.0 六大資料遷移方法詳解:DTS、BCP、備份還原、附加分離、自訂程式、複寫

     編輯:關於SqlServer

方法對比總表

方法優點缺點適用場景
1. DTS 設計師視覺化、多任務、可儲存包重用、靈活跨異構來源外鍵須注意順序、大量資料較慢部分表遷移、異構資料來源、需重複執行
2. BCP 工具速度快、記憶體佔用低、無圖形介面適合腳本自動化僅支援文字檔↔表、需手工處理格式檔大量資料匯入/匯出、批次作業
3. 備份/還原完整保留結構/索引/觸發/權限、最可靠需同名資料庫、跨版本有相容性限制整庫遷移、災難恢復、建立測試環境
4. 分離/附加 (sp_attach_db)極快 (僅元資料操作)、保留所有物件需停止資料庫、檔案層級複製、跨版本風險同版本實例間快速移動、唯讀資料庫部署
5. 自訂程式 (VB/PB/Query Analyzer)彈性最高、可邊轉換邊清洗開發成本高、遠程需高頻寬複雜轉換邏輯、增量同步、ETL 流程
6. 複寫近即時同步、支援異構、可篩選欄位/列設定複雜、需 Agent/MSDTC、主鍵必備、text/image 需 WITH LOG異地備援、報表伺服器卸載、多站點同步

關鍵操作細節

DTS 匯入/匯出精靈

企業管理器 → 資料庫右鍵 → 所有工作 → 匯入/匯出資料。可另存為 .dts 包排程執行。

BCP 基本語法

bcp db.dbo.table OUT file.txt -c -t, -S server -U sa -P pwd
bcp db.dbo.table IN file.txt -c -t, -S server -U sa -P pwd

分離/附加 T-SQL

-- 分離
EXEC sp_detach_db 'dbname'
-- 附加 (含記錄檔)
EXEC sp_attach_db @dbname='dbname', @filename1='D:\Data\db.mdf', @filename2='D:\Log\db.ldf'
-- 僅附加資料檔 (自動建立新記錄檔)
EXEC sp_attach_single_file_db @dbname='dbname', @physname='D:\Data\db.mdf'

複寫必要條件

  1. SQL Server Agent 啟動、MSDTC 啟動。
  2. 所有發行表必須有主鍵。
  3. text/image 欄位發行需 WITH LOG,受 max text repl size 限制。
  4. 發行/訂閱端需隱含共享 (C$, D$...)。
  5. Agent 服務帳戶不可為 Local System (需網路存取權)。
  6. 跨網域需建立信任關係。

建議選擇策略

  • 整庫、同版本、停機可接受 → **備份/還原** 或 **分離/附加**。
  • 部分表、異構來源 → **DTS/SSIS**。
  • 超大表、追求極致速度 → **BCP**。
  • 持續同步、報表卸載 → **複寫** (或 2005+ 的鏡像/可用性群組/Log Shipping)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved