在使用SQL Server 的過程,中由於經常需要從多個不同地點將資料集中起來或向多個地點複製資料,所以資料的匯出,匯入是極為常見的操作.我們可以使用BCP 命令來完成這一任務,但是記住 BCP 的命令格式是一件令人頭痛的苦差事,雖然你可以查看協助檔案,所以我們需要功能強大操作簡單的工具來完成這一任務,資料轉換服務DTS 提供了這種支援。因此本章將介紹DTS 的基本情況、討論DTS 的各個構建組件以及如何完成資料轉換服務。
18.1.1 資料轉換服務簡介
為了支援企業決策,許多組織都需將資料集中起來進行分析。但是通常資料總是以不同的格式儲存在不同的地方。有的可能是文字檔,有的雖然具有表結構但不屬於同一種資料來源,這些情況極大地妨礙資料的集中處理。SQL Server 為我們提供了令人欣慰的組件,即Data Transformation Services( DTS)。 DTS 本身包含多個工具並提供了介面來實現在任何支援OLE DB 的資料來源間匯入、匯出或傳遞資料,並使這一工作變得簡單高效。這意味著不僅可以在SQL Server 資料來源間進行資料的轉儲,而且可以把Sybase, Oracle, Informix 下的資料傳遞到SQL Server。
利用Data Transformation Services (DTS) 可能在任何OLE DB、 ODBC 驅動程式的資料來源或文本文和SQL Server 之間匯入、匯出或傳遞資料。具體表現在: 資料的匯入、匯出服務
通過讀寫資料在不同應用程式間交換資料。例如,可將文字檔或Microsoft Access 資料庫匯入到SQL Server, 也可以把資料從SQL Server 匯出到任何OLE DB 資料來源。 轉換資料
所謂傳遞是指在資料未到達目標資料來源前而對資料採取的系列操作。比如DTS 允許從來源資料源的一列或多列計算出新的列值,然後將其儲存在目標資料庫中。 傳遞資料庫物件
在異構資料來源情況下DTS, 的內建工具只能在資料來源間傳遞表定義和資料。如果要傳遞其它資料庫物件,如索引、約束、視圖時,必須定義一個任務,從而在目標資料庫上執行那些包含在任務中的SQL 陳述式,SQL 陳述式是被用來建立這些資料庫物件的。 18.1.2 DTS 結構
DTS 將資料匯入、匯出或傳遞定義成可儲存的對象,即包裹或稱為包。每一個包都是包括一個或具有一定順序的多個任務的工作流程。每個任務可以將資料從某一資料來源拷貝至目標資料來源或使用Active 指令碼轉換資料或執行SQL 陳述式或運行外部程式。也可以在SQL Server 資料來源間傳遞資料庫物件。
包對象用來建立並儲存步驟,這些步驟定義了一系列任務執行的順序以及執行任務的必要細節。包對象中還包括源列、目標列以及有關在資料傳遞過程中如何操縱資料的資訊。
包可以儲存在DTS COM 結構化儲存體檔案中、msdb 資料庫中、或Microsoft Repository 中。
可以通過以下工具來運行包,它們是:dtsrun 工具,DTS Designer, DTS 的匯入、匯出嚮導,SQL Server Agent 來運行規劃作業,使用Execute 方法調用DTS 包對象的COM應用程式。
包是頂層對象,它包含三種底層對象:串連、任務、步驟。
1 串連
串連定義了有關源和目標資料(資料來源或檔案)的資訊這些資訊包括資料格式和位置,以及安全認證的密碼。DTS 包可不包含或包含多個串連。使用串連的任務有: DTS Data Pump 任務 執行SQL 任務 資料驅動查詢任務 定製任務
有三種類型的連線物件 資料來源串連
資料來源串連定義了有關源和目標OLE DB 資料來源的資訊。這些資訊包括伺服器名稱、資料格式和位置,以及安全認證的密碼。第一個使用串連的任務負責建立該串連。如果使用ODBC 的OLE DB 提供者,則串連也可以定義ODBC 資料來源資訊。 檔案串連
檔案串連定義了有關源和目標檔案的資訊。這些資訊包括檔案格式和位置。 Microsoft 資料連線對象
Microsoft 資料連線對象或者載入資料連線檔案(*.udl) 或者為OLE DB 提供者設定資料連線檔案的屬性。 2 任務
每個DTS 包都含有一個或多個任務,每個任務都是資料轉換(傳遞)處理的工作項目。任務的種類包括: 執行SQL 任務:即執行SQL 陳述式; Data Pump 任務該任務:為Data Pump 操作定義了源和目標資料來源以及資料轉換。Data Pump 從源和目標OLE DB 資料來源間拷貝並轉換資料; ActiveX 指令碼執行:ActiveX, VB, Jscript 或Perscript 指令碼。凡是指令碼支援的操作都可以執行; 執行處理任務(Execute Process task): 指執行外部程式; 批量插入指執行:SQL Server 批拷貝操作; 發送郵件:使用SQL Mail 發送呼叫或郵件; 資料驅動查詢:執行OLE DB 資料來源間的進階資料傳遞; 轉換SQL Server 物件:即從SQL Server OLE DB 資料來源向另外的同質資料源複製對象,例如表、索引、視圖。 3 步驟
步驟對象定義了任務執行的順序,以及某一任務的執行是否依賴於前一個任務的結果。如果某一任務不與步驟對象相關聯,則其將無法被執行。可以為某一步驟設定運行條件,使其只在一定條件才被執行,為了提高執行的效能,也可以並存執行多個步驟。
步驟的一個重要特性是步驟優先權約束。步驟優先權約束定義了前一步必須滿足哪些條件之後才會執行當前步驟,通過步驟優先權約束可以控制任務的執行順序。有三種類型的優先權約束:
完成:表示前一步驟完成後就執行當前步驟,而不管其成功與否; 成功:表示前一步驟只有成功執行才執行當前步驟; 失敗:表示前一步驟執行失敗時才執行當前步驟。 某一步驟可有多個優先權約束,只有前一步滿足所有的約束後,才能執行當前步驟。