首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server 異構表資料遷移:手寫 INSERT SELECT 對應欄位

     編輯:程式設計綜合問答

兩資料庫表結構不同 (欄位名、順序、型別皆可能差異),需將資料從來源表遷移至目標表。

核心原則:顯式列出欄位

INSERT INTO 目標資料庫.dbo.目標表 (目標欄位1, 目標欄位2, 目標欄位3)
SELECT 來源欄位A, 來源欄位B, 來源欄位C
FROM 來源資料庫.dbo.來源表
WHERE 條件;

跨伺服器遷移步驟

  1. 建立 Linked Server:
    EXEC sp_addlinkedserver @server='SRC', @srvproduct='', @provider='SQLNCLI', @datasrc='來源IP';
  2. 設定登入認證:EXEC sp_addlinkedsrvlogin 'SRC', 'false', NULL, 'user', 'pwd';
  3. 使用四段式名稱查詢:INSERT INTO 目標表(...) SELECT ... FROM SRC.來源庫.dbo.來源表;

型別轉換與清洗

SELECT
    CAST(來源欄位A AS INT)           AS 目標欄位1,
    CONVERT(VARCHAR(50), 來源欄位B)  AS 目標欄位2,
    ISNULL(來源欄位C, '預設值')       AS 目標欄位3
FROM ...

大量資料效能建議

  • 分批次 (如每 1 萬筆) 提交交易,避免記錄檔暴漲。
  • 目標表先 DROP INDEX / DISABLE TRIGGER,匯入後重建。
  • 使用 bcp / SSIS / Azure Data Factory 等 ETL 工具更高效。

異構表遷移核心:手寫欄位對應、顯式轉型、分批提交,切勿依賴 SELECT *。

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