時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
在使用SQL Server 的過程,中由于經(jīng)常需要從多個不同地點將數(shù)據(jù)集中起來或向多個地點復制數(shù)據(jù),所以數(shù)據(jù)的導出,導入是極為常見的操作.我們可以使用BCP 命令來完成這一任務,但是記住 BCP 的命令格式是一件令人頭痛的苦差事,雖然你可以查看幫助文件,所以我們需要功能強大操作簡單的工具來完成這一任務,數(shù)據(jù)轉換服務DTS 提供了這種支持。因此本章將介紹DTS 的基本情況、討論DTS 的各個構建組件以及如何完成數(shù)據(jù)轉換服務。
數(shù)據(jù)轉換服務簡介
為了支持企業(yè)決策,許多組織都需將數(shù)據(jù)集中起來進行分析。但是通常數(shù)據(jù)總是以不同的格式存儲在不同的地方。有的可能是文本文件,有的雖然具有表結構但不屬于同一種數(shù)據(jù)源,這些情況極大地妨礙數(shù)據(jù)的集中處理。SQL Server 為我們提供了令人欣慰的組件,即Data Transformation Services( DTS)。 DTS 本身包含多個工具并提供了接口來實現(xiàn)在任何支持OLE DB 的數(shù)據(jù)源間導入、導出或傳遞數(shù)據(jù),并使這一工作變得簡單高效。這意味著不僅可以在SQL Server 數(shù)據(jù)源間進行數(shù)據(jù)的轉儲,而且可以把Sybase, Oracle, Informix 下的數(shù)據(jù)傳遞到SQL Server。
利用Data Transformation Services (DTS) 可能在任何OLE DB、 ODBC 驅(qū)動程序的數(shù)據(jù)源或文本文和SQL Server 之間導入、導出或傳遞數(shù)據(jù)。具體表現(xiàn)在:
數(shù)據(jù)的導入、導出服務
通過讀寫數(shù)據(jù)在不同應用程序間交換數(shù)據(jù)。例如,可將文本文件或Microsoft Access 數(shù)據(jù)庫導入到SQL Server, 也可以把數(shù)據(jù)從SQL Server 導出到任何OLE DB 數(shù)據(jù)源。
轉換數(shù)據(jù)
所謂傳遞是指在數(shù)據(jù)未到達目標數(shù)據(jù)源前而對數(shù)據(jù)采取的系列操作。比如DTS 允許從源數(shù)據(jù)源的一列或多列計算出新的列值,然后將其存儲在目標數(shù)據(jù)庫中。
傳遞數(shù)據(jù)庫對象
在異構數(shù)據(jù)源情況下DTS, 的內(nèi)置工具只能在數(shù)據(jù)源間傳遞表定義和數(shù)據(jù)。如果要傳遞其它數(shù)據(jù)庫對象,如索引、約束、視圖時,必須定義一個任務,從而在目標數(shù)據(jù)庫上執(zhí)行那些包含在任務中的SQL 語句,SQL 語句是被用來創(chuàng)建這些數(shù)據(jù)庫對象的。
DTS 將數(shù)據(jù)導入、導出或傳遞定義成可存儲的對象,即包裹或稱為包。每一個包都是包括一個或具有一定順序的多個任務的工作流。每個任務可以將數(shù)據(jù)從某一數(shù)據(jù)源拷貝至目標數(shù)據(jù)源或使用Active 腳本轉換數(shù)據(jù)或執(zhí)行SQL 語句或運行外部程序。也可以在SQL Server 數(shù)據(jù)源間傳遞數(shù)據(jù)庫對象。
包對象用來創(chuàng)建并存儲步驟,這些步驟定義了一系列任務執(zhí)行的順序以及執(zhí)行任務的必要細節(jié)。包對象中還包括源列、目標列以及有關在數(shù)據(jù)傳遞過程中如何操縱數(shù)據(jù)的信息。
包可以存儲在DTS COM 結構的存儲文件中、msdb 數(shù)據(jù)庫中、或Microsoft Repository 中。
可以通過以下工具來運行包,它們是:dtsrun 工具,DTS Designer, DTS 的導入、導出向?qū)В琒QL Server Agent 來運行規(guī)劃作業(yè),使用Execute 方法調(diào)用DTS 包對象的COM應用程序。
包是頂層對象,它包含三種底層對象:連接、任務、步驟。
連接
連接定義了有關源和目標數(shù)據(jù)(數(shù)據(jù)源或文件)的信息這些信息包括數(shù)據(jù)格式和位置,以及安全認證的密碼。DTS 包可不包含或包含多個連接。使用連接的任務有:
DTS Data Pump 任務 執(zhí)行SQL 任務 數(shù)據(jù)驅(qū)動查詢?nèi)蝿?定制任務;
有三種類型的連接對象 數(shù)據(jù)源連接。
數(shù)據(jù)源連接定義了有關源和目標OLE DB 數(shù)據(jù)源的信息。這些信息包括服務器名稱、數(shù)據(jù)格式和位置,以及安全認證的密碼。第一個使用連接的任務負責創(chuàng)建該連接。如果使用ODBC 的OLE DB 提供者,則連接也可以定義ODBC 數(shù)據(jù)源信息。
文件連接定義了有關源和目標文件的信息。這些信息包括文件格式和位置。 Microsoft 數(shù)據(jù)連接對象
Microsoft 數(shù)據(jù)連接對象或者加載數(shù)據(jù)連接文件(*.udl) 或者為OLE DB 提供者設置數(shù)據(jù)連接文件的屬性。
任務
每個DTS 包都含有一個或多個任務,每個任務都是數(shù)據(jù)轉換(傳遞)處理的工作項目。任務的種類包括: 執(zhí)行SQL 任務:即執(zhí)行SQL 語句; Data Pump 任務該任務:為Data Pump 操作定義了源和目標數(shù)據(jù)源以及數(shù)據(jù)轉換。Data Pump 從源和目標OLE DB 數(shù)據(jù)源間拷貝并轉換數(shù)據(jù); ActiveX 腳本執(zhí)行:ActiveX, VB, Jscript 或Perscript 腳本。凡是腳本支持的操作都可以執(zhí)行; 執(zhí)行處理任務(Execute Process task): 指執(zhí)行外部程序; 批量插入指執(zhí)行:SQL Server 批拷貝操作; 發(fā)送郵件:使用SQL Mail 發(fā)送尋呼或郵件; 數(shù)據(jù)驅(qū)動查詢:執(zhí)行OLE DB 數(shù)據(jù)源間的高級數(shù)據(jù)傳遞; 轉換SQL Server 對象:即從SQL Server OLE DB 數(shù)據(jù)源向另外的同類數(shù)據(jù)源復制對象,例如表、索引、視圖。
步驟
步驟對象定義了任務執(zhí)行的順序,以及某一任務的執(zhí)行是否依賴于前一個任務的結果。如果某一任務不與步驟對象相關聯(lián),則其將無法被執(zhí)行。可以為某一步驟設定運行條件,使其只在一定條件才被執(zhí)行,為了提高執(zhí)行的性能,也可以并行執(zhí)行多個步驟。
步驟的一個重要特性是步驟優(yōu)先權約束。步驟優(yōu)先權約束定義了前一步必須滿足哪些條件之后才會執(zhí)行當前步驟,通過步驟優(yōu)先權約束可以控制任務的執(zhí)行順序。有三種類型的優(yōu)先權約束:
完成:表示前一步驟完成后就執(zhí)行當前步驟,而不管其成功與否; 成功:表示前一步驟只有成功執(zhí)行才執(zhí)行當前步驟; 失敗:表示前一步驟執(zhí)行失敗時才執(zhí)行當前步驟。某一步驟可有多個優(yōu)先權約束,只有前一步滿足所有的約束后,才能執(zhí)行當前步驟。
關鍵詞標簽:DTS構建,數(shù)據(jù)轉換
相關閱讀
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構的關系
人氣排行 配置和注冊ODBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠程導入(導出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法