OLE DB 目的地會使用資料庫數據表或檢視表或 SQL 命令,將數據載入各種 OLE DB 相容資料庫。 例如,OLE DB 來源可以將數據載入Microsoft Office Access 和 SQL Server 資料庫中的數據表。
OLE DB 目的地提供五種不同的資料存取模式來載入資料:
資料表或檢視。 您可以指定現有的數據表或檢視表,或建立新的資料表。
使用快速載入選項的數據表或視圖。 您可以指定現有的資料表或建立新的資料表。
變數中指定的數據表或檢視表。
使用快速載入選項在變數中指定的數據表或檢視表。
SQL 語句的結果。
備註
OLE DB 目的地不支持參數。 如果您需要執行參數化 INSERT 語句,請考慮 OLE DB 命令轉換。 如需相關資訊,請參閱 OLE DB Command Transformation。
當 OLE DB 目的地載入使用雙位元組字元集 (DBCS) 的數據時,如果數據存取模式不使用快速載入選項,而且 OLE DB 連接管理員使用 Microsoft OLE DB Provider for SQL Server (SQLOLEDB),數據可能會損毀。 為了確保 DBCS 資料的完整性,您應該將 OLE DB 連接管理員設定為使用 SQL Server Native Client,或使用其中一種快速載入存取模式: 數據表或檢視表 - 快速載入 或 數據表名稱或檢視名稱變數 - 快速載入。 這兩個選項都可從 [OLE DB 目的地編輯器 ] 對話框取得。 在設計 SSIS 物件模型時,您應該將 AccessMode 屬性設定為 OpenRowset Using FastLoad或 OpenRowset Using FastLoad From Variable。
備註
如果您使用 SSIS 設計工具中的 [OLE DB 目的地編輯器 ] 對話方塊來建立 OLE DB 目的地插入資料的目的地資料表,您可能必須手動選取新建立的數據表。 當 OLE DB 提供者,例如 DB2 的 OLE DB 提供者,自動將架構識別元新增至數據表名稱時,就會發生手動選取的需求。
備註
[ OLE DB 目的地編輯器 ] 對話框產生的 CREATE TABLE 語句可能需要根據目的地類型進行修改。 例如,某些目的地不支援 CREATE TABLE 語句所使用的數據類型。
此目的地會使用 OLE DB 連接管理員來連線至數據源,而連接管理員會指定要使用的 OLE DB 提供者。 如需詳細資訊,請參閱 OLE DB 連接管理員。
Integration Services 專案也提供數據源物件,您可以從中建立 OLE DB 連接管理員,讓數據源和數據源檢視可供 OLE DB 目的地使用。
OLE DB 目的地包含輸入列與目的地資料來源列之間的對照關係。 您不一定要將輸入資料行對應到所有目的地資料行,但因目的地資料行屬性的不同,如果輸入資料行未對應到目的地資料行,則可能發生錯誤。 例如,如果目的地資料行不允許 Null 值,則輸入資料行必須對應到該資料行。 此外,映射欄位的數據類型必須相容。 例如,您無法將具有字串數據類型的輸入數據行對應至具有數值數據類型的目的地數據行。
OLE DB 目的地有一個一般輸入和一個錯誤輸出。
如需有關資料類型的詳細資訊,請參閱< Integration Services Data Types>。
快速載入選項
如果 OLE DB 目的地使用快速載入資料存取模式,您可以在目的地的使用者介面 OLE DB 目的地編輯器中指定下列快速載入選項:
從匯入的數據檔中保留識別值,或使用 SQL Server 指派的唯一值。
在批次載入作業中保留空值。
在大容量匯入作業期間檢查目標資料表或檢視的約束條件。
在大量載入作業期間,獲取表級鎖定。
指定批次中的行數和提交大小。
某些快速載入選項會儲存在 OLE DB 目的地的特定屬性中。 例如,FastLoadKeepIdentity 會指定是否要保留識別值,FastLoadKeepNulls 會指定是否保留 Null 值,而 FastLoadMaxInsertCommitSize 會指定要認可為批次的數據列數目。 其他快速載入選項會儲存在 FastLoadOptions 屬性的逗號分隔清單中。 如果 OLE DB 目的地使用儲存在 FastLoadOptions 中的所有快速載入選項,並列在 [OLE DB 目的地編輯器 ] 對話框中,則 屬性的值會設定為 TABLOCK, CHECK_CONSTRAINTS, ROWS_PER_BATCH=1000。 值 1000 表示目的地已設定為使用 1000 個數據列的批次。
備註
目的地的任何條件約束失敗都會使 FastLoadMaxInsertCommitSize 所定義的整個數據列批次失敗。
除了 [ OLE DB 目的地編輯器 ] 對話框中公開的快速載入選項之外,您還可以在 [ 進階編輯器 ] 對話框中輸入 FastLoadOptions 屬性中的選項,將 OLE DB 目的地設定為使用下列大量載入選項。
| 快速載入選項 | 說明 |
|---|---|
| KILOBYTES_PER_BATCH | 指定要插入的大小以 KB 為單位。 選項的格式 KILOBYTES_PER_BATCH 為 = <正整數值**>。 |
| 火災觸發器 | 指定觸發程式是否在插入表的時候觸發。 選項具有形式 FIRE_TRIGGERS。 選項的存在表示觸發器啟動。 |
| 訂單 | 指定如何排序輸入數據。 選項的格式為 ORDER <欄名> ASC|DESC。 可以列出任意數目的數據行,而且選擇性地包含排序順序。 如果省略排序順序,插入作業會假設數據未排序。 注意:如果您使用 ORDER 選項來根據數據表上的叢集索引來排序輸入數據,則可以改善效能。 |
Transact-SQL 關鍵詞傳統上是使用大寫字母來輸入,但關鍵詞不區分大小寫。
若要深入瞭解快速載入選項,請參閱 BULK INSERT (Transact-SQL) 。
針對 OLE DB 目的地進行疑難解答
您可以記錄 OLE DB 目的地對外部資料提供者所做的呼叫。 您可以使用此記錄功能來排解將資料儲存到 OLE DB 目的地所使用的外部數據源時遇到的問題。 若要記錄 OLE DB 目的地對外部資料提供者所做的呼叫,請啟用封裝記錄,然後在封裝層級選取 [診斷 ] 事件。 如需詳細資訊,請參閱 封裝執行疑難解答工具。
設定 OLE DB 目的地
您可以透過 SSIS 設計師或以程式設計方式設定屬性。
如需有關您可在 [OLE DB 目的地編輯器] 對話框中設定的屬性之詳細資訊,請按以下其中一個主題:
[進階編輯器] 對話方塊會反映能以程式設計的方式設定之屬性。 如需有關可以在 [進階編輯器] 對話方塊中或以程式設計方式設定之屬性的詳細資訊,請按下列其中一個主題:
如需有關如何設定屬性的詳細資訊,請按下列其中一個主題: