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

SQL Server 六大資料移動方法總覽:DTS、BCP、備份還原、附加分離、自訂程式、複寫

     編輯:關於SqlServer

方法一: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

適合百萬級以上資料,需自行處理格式檔 (-f) 與身分值 (-E)。

方法三:備份/還原 (最完整、最安全)

  1. 完整備份至裝置/檔案。
  2. 複製備份檔至目標伺服器 (本機還原最快)。
  3. 還原資料庫,選擇「強制還原」覆蓋既有同名庫。保留所有物件、權限、索引。

方法四:分離/附加 (元資料操作、秒級)

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'

需先分離 (斷開所有連線),跨版本附加有相容性風險。

方法五:自訂程式遷移 (彈性最高)

  • VB/PB/C# 連接雙端,逐表 INSERT ... SELECT 或 SELECT INTO。
  • INSERT INTO target SELECT ... FROM source 比 SELECT INTO 彈性大 (目標表預先存在、可指定欄位)。
  • 遠程連結需高頻寬、低延遲。

方法六:複寫 (持續同步)

前提:Agent/MSDTC 啟動、發行表有主鍵、text/image 用 WITH LOG、隱含共享、Agent 非 Local System、跨網域有信任。適合異地報表庫、多站點同步。

選擇決策樹

  • 整庫、可停機、同版本 → **備份/還原** 或 **分離/附加**。
  • 部分表、異構來源 → **DTS/SSIS**。
  • 極大表、追求速度 → **BCP**。
  • 持續同步、報表卸載 → **複寫** (或更新版的 AlwaysOn/Log Shipping)。
  • 複雜轉換/清洗 → **自訂程式**。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved