查閱轉換

更新: 2006 年 12 月 12 日

「查閱」轉換會藉由聯結輸入資料行中的資料與參考資料集中的資料行來執行查閱。參考資料集可以是現有的資料表或檢視、新資料表,或 SQL 陳述式的結果。查閱轉換使用 OLE DB 連接管理員來連接到資料庫,該資料庫包含的資料就是參考資料集的來源。如需詳細資訊,請參閱<OLE DB 連接管理員

您可以利用下列方式設定「查閱」轉換:

  • 指定包含參考資料集的資料表或檢視。
  • 藉由指定 SQL 陳述式產生參考資料表。
  • 指定輸入與參考資料集之間的聯結。
  • 從參考資料集將資料行加入至轉換輸出。
  • 使用快取 SQL 陳述式,指定為改善效能所快取的部分或全部參考資料集。
  • 將快取 SQL 陳述式中的參數對應到輸入資料行。
  • 指定轉換在 32 位元及 64 位元環境中可使用多少 MB 的記憶體。32 位元環境會強制 3072 MB 的限制,而 64 位元環境則沒有此限制。

「查閱」轉換會在轉換輸入的值與參考資料集的值之間執行等聯結 (Equi-Join)。使用等聯結表示轉換輸入中的各資料列,必須至少符合參考資料集中的某個資料列。如果參考資料集中沒有符合的項目,則不會發生任何聯結,亦不會從參考資料集傳回任何值。這表示錯誤且轉換失敗,除非已設定為忽略錯誤或將錯誤資料列重新導向至錯誤輸出。如果參考資料表中有多個相符項目,查閱將以查閱查詢為準,只傳回第一個相符項目。如果找到多個相符項目,除非將查閱轉換設定為使用全部預先快取,否則不會產生任何錯誤或警告。使用全部預先快取時,如果在快取已滿時偵測到多個相符項目,便會產生警告。

聯結可以是複合聯結,表示您可以將轉換輸入中的多個資料行聯結至參考資料集中的資料行。轉換支援聯結任何資料類型的資料行,但 DT_R4、DT_R8、DT_TEXT、DT_NTEXT 或 DT_IMAG 除外。如需詳細資訊,請參閱<Integration Services 資料類型>。

通常參考資料集的值會加入至轉換輸出。例如,「查閱」轉換可從使用輸出資料行之值的資料表擷取產品名稱,然後將產品名稱加入至轉換輸出。參考資料表的值可取代資料行的值,或者可加入至新的資料行。

「查閱」轉換執行的查閱區分大小寫。您可以先使用「字元對應」轉換將資料轉換成大寫或小寫,然後在產生參考資料表的 SQL 陳述式中加入 UPPER 或 LOWER 函數,藉此避免因資料中大小寫不同而造成查閱失敗。如需詳細資訊,請參閱<字元對應轉換>、<UPPER (Transact-SQL)>和<LOWER (Transact-SQL)>。

您也可以使用不從不區分大小寫的資料庫中快取和讀取的方式,避免查閱失敗。

這個轉換有一個輸入、一個規則輸出及一個錯誤輸出。

快取類型

參考資料集所需的記憶體可利用下列方式配置:

  • 全部預先快取,如此會在處理輸入之前先讀取完整的參考資料集。這是預設的快取類型。若要設定查閱轉換以使用全部預先快取,請確定 [查閱轉換編輯器][進階] 索引標籤上的所有選項都已清除。
  • 部分快取,查閱轉換會指定載入參考資料的快取大小。此選項只有在使用支援索引鍵存取的連接時才提供。若要設定查閱轉換以使用部分快取,請在 [查閱轉換編輯器][進階] 索引標籤上選取 [啟用記憶體限制],然後選取 [啟用快取][修改 SQL 陳述式],或同時選取 [啟用快取][修改 SQL 陳述式]
  • 無快取,如此會按照資料列集中的各資料列存取參考資料集。若要設定查閱轉換以使用無快取,請在 [查閱轉換編輯器][進階] 索引標籤上選取 [啟用記憶體限制],並清除其他所有選項。

如需有關 [進階] 索引標籤的詳細資訊,請參閱<查閱轉換編輯器 (進階索引標籤)>。

如果查閱作業符合包含 Null 值的資料行,則已設定為使用部分快取或無快取的「查閱」轉換將會失敗,除非您手動更新 SQL 陳述式,使其中包含 OR ISNULL(ColumnName) 條件。如果使用全部預先快取,查閱作業便會成功。

ms141821.note(zh-tw,SQL.90).gif附註:
如有可能,請避免在查閱作業中使用可能包含 Null 值的資料行。如果資料行包含 Null 值,請設定讓「查閱」轉換使用錯誤輸出,將沒有符合參考資料表中任何資料列的資料列導向另一個轉換輸出。或者,請考慮使用支援 Null 值查閱作業的全部快取。

Integration Services 和 SQL Server 的差異在於比較字串的方式。如果「查閱」轉換是設定為使用全部預先快取,Integration Services 會在快取中進行查閱比較,否則查閱作業會使用參數化 SQL 陳述數,且 SQL Server 會進行查閱比較。這表示「查閱」轉換可能會根據快取類型,從相同的查閱資料表傳回不同數目的相符項目。

快取 SQL 陳述式

「查閱」轉換可設定為使用快取 SQL 陳述式。SQL 陳述式可選擇參考資料集的子集,藉此限制其大小。如果參考資料集相當大,使用快取陳述式即可限制參考資料集所使用的記憶體數量。

快取 SQL 陳述式可在其 WHERE 子句中使用值或參數。參數會對應到輸入資料行,並於執行階段藉由輸入資料行中的值更新。

疑難排解查閱轉換

從 Microsoft SQL Server 2005 Service Pack 2 (SP2) 開始,您將能夠記錄查閱轉換對外部資料提供者執行的呼叫。您可以使用這項新的記錄功能,疑難排解查閱轉換所執行的從外部資料來源擴展快取。若要記錄查閱轉換對外部資料提供者執行的呼叫,請啟用封裝記錄,然後在封裝層級選取 [診斷] 事件。如需詳細資訊,請參閱<疑難排解封裝執行>。

設定查閱轉換

您可以透過「SSIS 設計師」或以程式設計的方式來設定屬性。

如需有關 [查閱轉換編輯器] 對話方塊中可設定屬性的詳細資訊,請按一下下列其中一個主題:

[進階編輯器] 對話方塊會反映能以程式設計的方式設定之屬性。如需有關可以在 [進階編輯器] 對話方塊中或以程式設計方式設定之屬性的詳細資訊,請按下列其中一個主題:

如需有關如何設定屬性的詳細資訊,請按下列其中一個主題:

請參閱

概念

模糊查閱轉換
詞彙查閱轉換
建立封裝資料流程
Integration Services 轉換

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

新增內容:
  • 新增有關如何使用 UI 以啟用不同快取類型的資訊。
  • 新增資訊,說明 SQL Server 2005 SP2 如何包括新的記錄訊息,讓使用者能夠疑難排解轉換對外部資料提供者執行的呼叫。

2006 年 4 月 14 日

新增內容:
  • 描述 32 位元和 64 位元環境指定快取大小的能力。
  • 新增有關使用不同快取類型之效果的資訊。

2005 年 12 月 5 日

變更的內容:
  • 釐清比對行為。