共用方式為


OLE DB 目的地

更新: 2006 年 12 月 12 日

OLE DB 目的地會使用資料庫的資料表、檢視或 SQL 命令將資料載入各種符合 OLE DB 標準的資料庫。例如,OLE DB 來源可以將資料載入至 Microsoft Office Access 和 SQL Server 2005 資料庫的資料表中。

ms141237.note(zh-tw,SQL.90).gif附註:
若要將資料載入至使用 Microsoft Office Excel 2007 的資料來源,請使用 OLE DB 目的地。您無法使用 Excel 目的地,將資料載入 Excel 2007 資料來源。如需詳細資訊,請參閱<OLE DB 連接管理員>。 若要將資料載入至使用 Microsoft Office Excel 2003 或更早版本的資料來源,請使用 Excel 目的地。如需詳細資訊,請參閱<Excel 目的地>。

OLE DB 目的地提供用於載入資料的五種不同資料存取模式:

  • 資料表或檢視。您可以指定現有的資料表或檢視,或者建立新資料表。
  • 使用快速載入選項的資料表或檢視。您可以指定現有的資料表,也可以新建資料表。
  • 在變數中指定的資料表或檢視。
  • 在變數中指定之使用快速載入選項的資料表或檢視。
  • SQL 陳述式的結果。
ms141237.note(zh-tw,SQL.90).gif附註:
OLE DB 目的地不支援參數。如果您必須執行參數化 INSERT 陳述式,請使用 OLE DB 命令轉換。如需詳細資訊,請參閱<OLE DB 命令轉換>。

當 OLE DB 目的地載入使用雙位元組字元集 (DBCS) 的資料時,如果資料存取模式沒有使用快速載入選項,而且 OLE DB 連接管理員使用 Microsoft OLE DB Provider for SQL Server (SQLOLEDB),則資料可能會損毀。為確保 DBCS 資料的完整性,您應設定 OLE DB 連接管理員使用 SQL Native Client,或使用快速載入存取模式之一:[資料表或檢視 - 快速載入][資料表名稱或檢視名稱變數 - 快速載入]。兩個選項在 [OLE DB 目的地編輯器] 對話方塊中都可用。在進行 SSIS 物件模型的程式設計時,您應該將 AccessMode 屬性設定為 OpenRowset Using FastLoadOpenRowset Using FastLoad From Variable

ms141237.note(zh-tw,SQL.90).gif附註:
如果使用「SSIS 設計師」中的 [OLE DB 目的地編輯器] 對話方塊來建立 OLE DB 目的地插入資料的目的地資料表,則您可能必須手動選取新建立的資料表。當 OLE DB 提供者 (例如 DB2 的 OLE DB 提供者) 自動將結構描述識別碼加入資料表名稱時,需進行手動選取。
ms141237.note(zh-tw,SQL.90).gif附註:
視目的地類型而定,[OLE DB 目的地編輯器] 對話方塊產生的 CREATE TABLE 陳述式可能需要進行修改。例如,某些目的地並不支援 CREATE TABLE 陳述式所使用的資料類型。

此目的地使用 OLE DB 連接管理員連接到資料來源,且連接管理員會指定要使用的 OLE DB 提供者。如需詳細資訊,請參閱<OLE DB 連接管理員>。

Integration Services 專案亦提供您建立 OLE DB 連接管理員所在的資料來源物件,讓 OLE DB 目的地使用資料來源和資料來源檢視。如需詳細資訊,請參閱<資料來源 (SSIS)>和<資料來源檢視 (SSIS)>。

OLE DB 目的地包含輸入資料行與目的地資料來源中資料行之間的對應。您不一定要將輸入資料行對應到所有目的地資料行,但因目的地資料行屬性的不同,如果輸入資料行未對應到目的地資料行,則可能發生錯誤。例如,如果目的地資料行不允許 Null 值,則輸入資料行必須對應到該資料行。此外,對應的資料行之資料類型必須相容。例如,您不能將字串資料類型的輸入資料行對應到數值資料類型的目的地資料行。

OLE DB 目的地具有一個規則輸入和一個錯誤輸出。

快速載入選項

如果 OLE DB 目的地使用快速載入資料存取模式,則您可以在使用者介面 [OLE DB 目的地編輯器] 中為目的地指定下列快速載入選項:

  • 保留匯入資料檔中的識別值或使用 SQL Server 指派的唯一值。
  • 大量載入作業期間保留 Null 值。
  • 大量匯入作業期間檢查目標資料表或檢視的條件約束。
  • 大量載入作業期間需要資料表層級鎖定。
  • 指定批次中的資料列數目以及認可大小。

部分快速載入選項儲存在 OLE DB 目的地的特定屬性中。例如,FastLoadKeepIdentity 指定是否要保留識別值、FastLoadKeepNulls 指定是否要保留 Null 值,而 FastLoadMaxInsertCommitSize 則指定要認可為批次的資料列數目。其他快速載入選項儲存在 FastLoadOptions 屬性的逗號分隔清單中。如果 OLE DB 目的地使用儲存在 FastLoadOptions 及列在 [OLE DB 目的地編輯器] 對話方塊中的所有快速載入選項,屬性的值便會設定為 TABLOCK, CHECK_CONSTRAINTS, ROWS_PER_BATCH=1000。1000 值代表目的地設定為使用 1000 列的批次。

ms141237.note(zh-tw,SQL.90).gif附註:
目的地的任何條件約束失敗都會使 FastLoadMaxInsertCommitSize 所定義的整個資料列批次失敗。

除了 [OLE DB 目的地編輯器] 對話方塊中公開的快速載入選項以外,您還可以在 [進階編輯器] 對話方塊的 FastLoadOptions 屬性中輸入選項,將 OLE DB 目的地設定為使用下列大量載入選項。

快速載入選項

描述

KILOBYTES_PER_BATCH

指定要插入的大小 (以 KB 為單位)。選項的格式為 KILOBYTES_PER_BATCH = <正整數值**>**。

FIRE_TRIGGERS

指定觸發程序是否在插入資料表上引發。選項的格式為 FIRE_TRIGGERS。選項的存在代表觸發程序會引發。

ORDER

指定如何儲存輸入資料。選項的格式為 ORDER <資料行名稱> ASC|DESC。可以列出任何數目的資料行,也可以選擇包含排序順序。如果省略排序順序,大量插入作業會假設資料沒有排序。

ms141237.note(zh-tw,SQL.90).gif附註:

如果載入的資料是依照資料表的叢集索引進行排序,將可改善效能。

Transact-SQL 關鍵字通常是以大寫字母輸入,但是這些關鍵字並不區分大小寫。

若要瞭解有關快速載入選項的詳細資訊,請參閱<BULK INSERT (Transact-SQL)>。

疑難排解 OLE DB 目的地

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

設定 OLE DB 目的地

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

如需有關可以在 [OLE DB 目的地編輯器] 對話方塊中設定之屬性的詳細資訊,請按下列其中一個主題:

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

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

請參閱

概念

OLE DB 來源
Integration Services 變數
建立封裝資料流程

其他資源

Integration Services 目的地

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

新增內容:
  • 新增有關 Excel 2007 資料來源的使用附註。
  • 新增資訊,說明 SQL Server 2005 SP2 如何包括新的記錄訊息,讓使用者能夠疑難排解目的地對外部資料提供者執行的呼叫。

2006 年 7 月 17 日

變更的內容:
  • 說明目的地的條件約束失敗會造成批次失敗。
  • 修正屬性名稱的輸入錯誤。

2005 年 12 月 5 日

變更的內容:
  • 提供有關快速載入選項的詳細資訊。
  • 新增注意事項,說明有關修改產生之資料表定義的需求。