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

SQL Server Linked Server 連接 DB2 完整實作指南

     編輯:DB2 教學

架構總覽

SQL Server 透過 **Linked Server** + **OLE DB Provider for DB2** + **DB2 ODBC Driver** 實現異構查詢。

環境需求

  • OS:Windows Server 2000/2003/2008+
  • SQL Server 2000/2005+
  • DB2 Client(含 ODBC Driver、OLE DB Provider)安裝於 SQL Server 主機

步驟 1:建立系統 DSN (ODBC)

  1. 控制台 → 系統管理工具 → 資料來源 (ODBC) → 系統 DSN → 新增
  2. 選 **IBM DB2 ODBC DRIVER**
  3. 資料來源名稱:自訂(如 `DB2TEST`)
  4. 資料庫名稱:**必填**,對應 DB2 端編目別名
  5. 完成 → 設定 → 測試連線(輸入 DB2 User/Password,Connection Mode 選 SHARE)

步驟 2:建立 Linked Server

  1. 企業管理器 / SSMS → 安全性 → 連結伺服器 → 新增
  2. 連結伺服器名稱:自訂(如 `LNK_DB2`)
  3. 伺服器類型:**其他資料來源**
  4. 提供者:**IBM OLE DB Provider for DB2 SERVERS**
  5. 資料來源:步驟 1 的 DSN 名稱(`DB2TEST`)
  6. 提供者字串:`User ID=db2user;Password=db2pwd` 或 `UID=db2user;PWD=db2pwd`
  7. 安全性頁籤:**「使用此安全性內容」** → 輸入 DB2 遠端登入帳密
  8. 伺服器選項:預設即可

步驟 3:驗證與查詢

  • 展開連結伺服器 → 資料表,可見遠端 Schema 下所有表。
  • 查詢語法(四部份命名):
    SELECT * FROM [LNK_DB2]..[DB2_SCHEMA].[TABLE_NAME]
  • 僅支援 `SELECT`/`INSERT`/`UPDATE`/`DELETE`;DDL 需直接在 DB2 執行。

常見問題排查

現象原因對策
「找不到提供者」未安裝 DB2 OLE DB ProviderDB2 Client 安裝時勾選「OLE DB Provider」
連線測試成功但查詢失敗Provider String 帳密錯誤或權限不足確認 DB2 端該用戶有 SELECT 權限
中文亂碼Codepage 不匹配DB2 Client `db2set DB2CODEPAGE=1208` (UTF-8) 或匹配 SQL Server 定序
分散式交易失敗MSDTC 未啟用/防火牆阻擋啟用 MSDTC、開放 135/動態埠

效能建議

  • 使用 `OPENQUERY` 下推過濾:
    SELECT * FROM OPENQUERY(LNK_DB2, 'SELECT * FROM SCHEMA.TAB WHERE COL=1')
  • 避免大結果集跨網路傳輸,必要時在 DB2 建立檢視/預存程序再遠端呼叫。
  • 定期更新 DB2 統計資訊,確保 SQL Server 優化器取得正確基數估算。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved