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

圖文教程:SQL Server 匯入/匯出精靈實現資料庫跨實例遷移

     編輯:關於SqlServer

適用場景

  • 同版本/跨版本 SQL Server 實例間資料遷移
  • 資料庫與平面檔 (CSV/Excel/TXT) 互轉
  • 異構資料源 (Oracle/MySQL/PostgreSQL) 透過 ODBC/OLEDB 遷移至 SQL Server
  • 只需遷移**部分資料表**或**自訂查詢結果集**

操作步驟詳解

步驟 1:啟動匯出精靈

在 SSMS 物件總管中:右鍵來源資料庫 → 工作 → 匯出資料...

右鍵選單:工作 -> 匯出資料

歡迎頁面

步驟 2:配置資料來源 (來源端)

  • 資料來源:SQL Server Native Client (建議) 或 .Net Framework Data Provider for SqlServer
  • 伺服器名稱:來源實例 IP/主機名 (如 192.168.1.100 或 .\SQL2019)
  • 驗證方式:Windows 驗證 或 SQL Server 驗證 (輸入帳號密碼)
  • 資料庫:下拉選擇要遷移的來源資料庫

選擇資料來源視窗

步驟 3:配置資料目的地 (目標端)

  • 同樣選擇 SQL Server Native Client
  • 填入**目標實例**伺服器名、驗證資訊
  • 資料庫:選擇現有目標資料庫,或勾選「新建」由精靈自動建立

選擇資料目的地視窗

步驟 4:指定資料傳輸模式 (關鍵選擇)

指定資料表複製或查詢

模式適用場景特點
從來源資料表/檢視表複製整表遷移、結構一致勾選資料表,可對應編輯欄位映射、啟用身分插入
編寫查詢指定要傳輸的資料篩選特定行、多表 JOIN、計算欄位、增量遷移輸入任意 SELECT 語句,結果集直接寫入目標表

步驟 5:選擇資料表與欄位映射 (模式一)

勾選要遷移的表,點擊 編輯映射... 可調整:

  • 目標表名稱 (可重命名)
  • 欄位對應 (自動按名稱匹配,可手動調整)
  • 資料類型轉換
  • 啟用身分插入 (保留自增 ID 值)
  • 建立目標表選項 (預設勾選,會在目標端建表)

選擇來源資料表視窗

步驟 6:編寫自訂查詢 (模式二)

例如增量遷移最近 7 天訂單:

SELECT OrderID, CustomerID, OrderDate, TotalAmount
FROM dbo.Orders
WHERE OrderDate >= DATEADD(DAY, -7, GETDATE())
  AND Status = 'Completed';

提供來源查詢視窗

點擊 剖析 驗證語法,再設定目標表名稱與映射。

步驟 7:執行封裝與結果驗證

  • 選擇「立即執行」
  • 可選「儲存 SSIS 封裝」至 SQL Server / 檔案系統,便於排程/重複執行
  • 精靈顯示逐表執行進度與成功/失敗筆數

進階技巧與避坑指南

1. 大數據量效能優化

  • **Fast Load 選項**:在「編輯映射」→「編輯 SQL」中,目標表插入語句前加入 WITH (TABLOCK) 或勾選「使用快速載入」 (需目標表無索引/觸發器/外鍵,或暫時停用)。
  • **批次大小**:預設 10000 行/批,大表可調大至 50000-100000 減少網路往返。
  • **並行執行**:將大表拆分多個精靈任務同時跑 (不同視窗),利用多核心/頻寬。

2. 身分值 (IDENTITY) 保留

**務必**在欄位映射視窗勾選 啟用身分插入,否則自增欄位會重新產生值,導致外鍵關聯斷裂。

3. 字元集與排序規則

跨版本/跨語言環境遷移時,精靈建立目標表預設使用資料庫預設排序規則。若來源表有特定 COLLATE,請在「編輯映射」→「編輯 SQL」中手動在 CREATE TABLE 加上 COLLATE Chinese_PRC_CI_AS 等。

4. 遷移後驗證清單

  1. 核心表行數對比:SELECT COUNT(*) FROM src; SELECT COUNT(*) FROM dest;
  2. 關鍵業務欄位抽樣比對 (MD5/CHECKSUM 聚合)
  3. 外鍵/索引/觸發器/權限 完整性檢查
  4. 應用端煙霧測試

5. 另類方案對比

方案優點缺點推薦場景
匯入/匯出精靈圖形化、支援異構、可儲存 SSIS極大表 (TB級) 慢、需人工點擊中小型遷移、一次性、異構
備份/還原 (BACKUP/RESTORE)最快、含所有物件、一致性保證同版本/相容版本、整庫、需檔案傳輸同版本整庫遷移、災難恢復
分離/附加 (DETACH/ATTACH)極快、單檔案資料庫離線、版本限制嚴格同版本、可接受停機
BCP / BULK INSERT命令列、可排程、極高效能需手寫格式化檔、純資料無結構大量資料定期同步、ETL
SSIS 專案企業級、可視化開發、錯誤處理、日誌學習曲線陡、部署複雜複雜 ETL、生產級排程

總結

SQL Server 匯入/匯出精靈是 **DBA 工具箱中最通用的「瑞士刀」**:圖形化操作、支援異構來源、可自訂查詢、可儲存為 SSIS 封裝重複使用。掌握「資料來源/目的地配置 → 選擇複製模式 → 欄位映射與身分插入 → 執行驗證」標準流程,即可輕鬆完成 90% 的跨實例資料遷移任務。大數據量場景請配合 Fast Load、批次調優或改用 BCP/SSIS。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved