IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)MSSQL → SQL Server可寫(xiě)腳本和編程擴(kuò)展SSIS包

SQL Server可寫(xiě)腳本和編程擴(kuò)展SSIS包

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

微軟的SQL Server 2005中用來(lái)替代數(shù)據(jù)傳輸服務(wù)(DTS)的SQL Server綜合服務(wù)(SSIS),包含了很多工具用于導(dǎo)入數(shù)據(jù)并將其轉(zhuǎn)換為有意義的信息,而不僅僅是被動(dòng)的導(dǎo)入。但是還有一點(diǎn)要注意的是,你會(huì)發(fā)現(xiàn)這個(gè)新的SSIS工具有時(shí)候并不能完全覆蓋你要做的所有事情。

因此,微軟提供了兩種基本方法來(lái)擴(kuò)展SSIS的功能。一種方法對(duì)那些沒(méi)有很多編程經(jīng)驗(yàn),或者是不需要編寫(xiě)復(fù)雜程序的人們來(lái)說(shuō)相對(duì)簡(jiǎn)單;另一種方法就是復(fù)雜的,它可以讓喜歡挑戰(zhàn)的程序員深入SSIS,對(duì)其進(jìn)行很大程度上的擴(kuò)展。

簡(jiǎn)單方式:腳本

我們中的大多數(shù)人都在某種程度上至少接觸過(guò)腳本,SSIS通過(guò)在SSIS包中使用VB .NET來(lái)為程序員提供編寫(xiě)腳本動(dòng)作的功能。腳本的范圍,與客戶項(xiàng)目相比,是十分小并且集中的;那是在你需要在現(xiàn)有的包允許或者已經(jīng)完成的范圍內(nèi)多少做些修改的時(shí)候使用的。

在SSIS包里面,有兩個(gè)元素是你可以用來(lái)添加腳本的:Script Task(在綜合服務(wù)設(shè)計(jì)應(yīng)用程序的控制流窗口中)和Script Component(在數(shù)據(jù)流窗口中)。它們倆的應(yīng)用環(huán)境稍微有些不同。

腳本任務(wù)(Script Task)是你用來(lái)在包里面實(shí)現(xiàn)一般目的的流控制的——它比腳本組件(Script Component)更加全局化,功能更強(qiáng)大,但是也復(fù)雜得多。它在包的數(shù)據(jù)流之外運(yùn)行,不能被數(shù)據(jù)流的工作方式約束,雖然腳本任務(wù)通常都是只有包被觸發(fā)的情況下才運(yùn)行(雖然你可以構(gòu)建在異常里面)。任務(wù)也支持?jǐn)帱c(diǎn)和調(diào)試,這在你編寫(xiě)了比較精細(xì)的具有控制邏輯或者完成某類決策制訂的腳本的時(shí)候比較有用。關(guān)于腳本任務(wù)的一個(gè)例子就是查詢活動(dòng)目錄,尋找一些關(guān)于數(shù)據(jù)的信息,或者是與另外一個(gè)數(shù)據(jù)倉(cāng)庫(kù)對(duì)話——都是在運(yùn)行包之前。

腳本組件更加貼近數(shù)據(jù)流工作的方式。腳本組件不是在整個(gè)包中之運(yùn)行一次,而是它的主要處理為每個(gè)需要處理的數(shù)據(jù)行運(yùn)行一次。腳本組件有三個(gè)比較基本的運(yùn)行環(huán)境:數(shù)據(jù)源、數(shù)據(jù)轉(zhuǎn)換,或者數(shù)據(jù)目標(biāo)。組件的交互性也比較小——它并不支持腳本任務(wù)支持的那種類型的調(diào)試,這是其一。使用腳本組件的大多數(shù)情況是類似一行接一行的轉(zhuǎn)換,構(gòu)建客戶ODBC目標(biāo),或者是不能通過(guò)SSIS本地函數(shù)處理的不重要的錯(cuò)誤處理或者轉(zhuǎn)換動(dòng)作。

高級(jí)方式:對(duì)客戶對(duì)象編程

雖然SSIS包里面的腳本很強(qiáng)大,有時(shí)候它仍然無(wú)法完成某些任務(wù)。在一些情況下,你可能需要從頭編寫(xiě)(或者其他人編寫(xiě))一個(gè)客戶 SSIS 擴(kuò)展。這不是輕松完成的事情;它需要你從根本上完全理解編程。但是對(duì)于客戶對(duì)象,它可能會(huì)以某種方式是使用SSIS,但是這方式絕對(duì)不是簡(jiǎn)單的自動(dòng)化任務(wù)。

例如,如果你的數(shù)據(jù)源不支持任何現(xiàn)有的SSIS轉(zhuǎn)換(例如,一些古怪的不再被制造廠商支持的私有數(shù)據(jù)源),你可以編寫(xiě)客戶連接管理對(duì)象來(lái)允許像在本地那樣使用這個(gè)數(shù)據(jù)。同樣,你可以創(chuàng)建客戶任務(wù),日志提供商,或者是通過(guò)SSIS實(shí)現(xiàn)的帶有同樣的編程庫(kù)的數(shù)據(jù)流組件。

以上談到的每一種類型都可以作為SSIS支持的語(yǔ)言中的基本類、屬性和方法集使用:Visual Basic, C#, C++, J# 和Jscript。C++, C# 和VB更容易產(chǎn)生最好的結(jié)果,因?yàn)樵谶@些情況下它們?cè)诟蟪潭壬媳婚_(kāi)發(fā)人員和供應(yīng)商支持。想法就是你所使用的語(yǔ)言不應(yīng)該成為你的障礙;它們都可以插入到同一個(gè)外部編程接口。你還可以為客戶對(duì)象創(chuàng)建用戶接口,通過(guò)標(biāo)準(zhǔn)的Windows窗體,無(wú)論是否需要它們。

一個(gè)極端強(qiáng)大的此類例子就是,你可以通過(guò)SSIS客戶對(duì)象創(chuàng)建可定制的前端調(diào)查裝置 。我們說(shuō),如果你想要?jiǎng)?chuàng)建一組程序類來(lái)為集合中的每個(gè)對(duì)象集執(zhí)行任務(wù),例如,數(shù)據(jù)庫(kù)中的一組表。如果你想要在很廣泛的范圍內(nèi)實(shí)現(xiàn)這樣的一個(gè)動(dòng)作,并且不需要每次都重新發(fā)明一次輪子,這就是一中最好的實(shí)現(xiàn)方式。當(dāng)你對(duì)一些新類型的數(shù)據(jù)(例如上面例子中提到的)創(chuàng)建客戶連接管理器,并且想要在上面創(chuàng)建客戶前端動(dòng)作的時(shí)候,它就特別有用處了。

結(jié)論

你擴(kuò)展SSIS的方式,無(wú)論是腳本還是編程,都是根據(jù)你的需求和你的能力來(lái)決定的。因?yàn)槟憧梢允褂脙煞N方式——即使在同一時(shí)間!——你都可以不用費(fèi)很多力氣。你還可以根據(jù)需要進(jìn)行修正和匹配。

關(guān)鍵詞標(biāo)簽:SQL Server,SSIS包

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表?yè)p壞的解決方法 sql server系統(tǒng)表?yè)p壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系

相關(guān)下載

    人氣排行 配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù) SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級(jí)到2000的正確操作步驟 sql server系統(tǒng)表?yè)p壞的解決方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法