使用腳本任務(wù)來動態(tài)創(chuàng)建SSIS包變量_第1頁
使用腳本任務(wù)來動態(tài)創(chuàng)建SSIS包變量_第2頁
使用腳本任務(wù)來動態(tài)創(chuàng)建SSIS包變量_第3頁
使用腳本任務(wù)來動態(tài)創(chuàng)建SSIS包變量_第4頁
使用腳本任務(wù)來動態(tài)創(chuàng)建SSIS包變量_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、使用腳本任務(wù)來動態(tài)創(chuàng)建 SSIS包變量SSIS的優(yōu)點之一就是能夠動態(tài)創(chuàng)建 可以輸入并控制不同元素的任務(wù),不需要硬編碼只能執(zhí) 行一項任務(wù)的程序包。這里我們可以來學(xué)習(xí)如何使用腳本任務(wù)來動態(tài)創(chuàng)建輸出文件。簡單來說,我們是要利用包變量來生成一個代表輸出文件的位置和名稱的輸出文件名, 利用腳本任務(wù)來動態(tài)創(chuàng)建輸出文件名。使用這個方法來修改變量信息并不只限于輸出文件信息。你還可以用這個方法來生成輸 入文件位置、用于執(zhí)行SQL任務(wù)的復(fù)雜查詢、插入數(shù)據(jù)等等。腳本任務(wù)是一個很強大的工具, 向程序開發(fā)員提供了別的控制流工具所不具備的性能。我們下面提供了一些簡單的例子,使用腳本任務(wù)來動態(tài)修改分配給一個輸出平面文件連

2、接的變量,進而可以按照我們選擇的文件名和位置來保存該文件。創(chuàng)建程序包首先,利用 SQL Server Busin ess In tellige nee Desig n Studio (BIDS)新建一個In tegrati on Services項目。在控制流表面上添加一個數(shù)據(jù)流任務(wù)在連接管理器里,創(chuàng)建一個連接到AdventureWorks數(shù)據(jù)庫的OLE DB連接雙擊數(shù)據(jù)流任務(wù),并添加一個OLE DB來源,設(shè)置為任意的表或視圖(在這里我使用 Purchasing.vVendor視圖) 添加一個平面目的文件,并通過數(shù)據(jù)源路徑(綠色箭頭)連接這兩個對象,如下所示。打開平面目的文件編輯器,新建一個連

3、接,選擇名為“CSV File Output ”的輸出文件類型。另外,選擇任意的一個文件名,該文件名會在之后被動態(tài)生成。Withcrapting.dtK Design*嚴 Contro.DataF. :?:ExecuL,.Dafa Flo艸 Task;IX專家網(wǎng)添加程序包變量回到控制選項卡,右擊除對象和選擇變量以外的任意位置。(這樣做是為了保證下一步即將設(shè)計的變量適用范圍包含整個程序包。)另外一種辦法是從菜單里選擇視圖 I其他視窗|變量。添加以下變量(在程序包范圍內(nèi))。名稱描述類 型值mDirectory文件輸出目錄。字 符 串C:SSISOutputmFilePrefix文件名(適用于你所在

4、組織的描述性名稱)字 符 串Ven dorsmOutFileName獲得用于平面文件連接的輸出文件名和路 徑。設(shè)置一個默認的值(使用平面文件連接 對象使用的當(dāng)前文件路徑)字 符 串C:SSISOutputVe ndors.txt添加腳本任務(wù)現(xiàn)在向控制流中數(shù)據(jù)流任務(wù)以上添加一個腳本任務(wù)。連接這兩個對象(從腳本任務(wù)到數(shù)據(jù)流任務(wù)),并存在優(yōu)先約束,如下圖所示。打開腳本任務(wù)編輯器。我們會使用默認設(shè)置,但是需要向腳本選項卡里添加以下變量。通過在這個屬性窗口里設(shè)定變量,我們可以讓這些變量適用于腳本任務(wù)。注意:變量名稱必須跟之前設(shè)定的一致,并且區(qū)分大小寫。ReadO nly VariablesmDirect

5、ory, mFilePrefixReadWriteVariablesmOutFileNameF面是設(shè)定腳本變量的例子。然后選擇“設(shè)計腳本” ”按鈕,就可以打開 Visual Studio for Applications (VSA) 設(shè)計環(huán)境。在默認設(shè)置中,你只有一個設(shè)計方法:Mai n。以下面的文本代替 Main方法:Public Sub Mai n()I'MSSQLTips: Modify Output File Locatio n'Dim sFi nalFileNameA ndPath As Stri ngIDim sDirectory As Stri ngDim sFi

6、lePrefix As Stri ngsDirectory = Dts.Variables("mDirectory").Value.ToStri ngIf Not (sDirectory.E ndsWith("") The nsDirectory = sDirectory + ""End If sFilePrefix = Dts.Variables("mFilePrefix").Value.ToStri ngsFi nalFileNameA ndPath = sDirectory + sFilePrefix + &

7、quot;-" +Mon th(Now.Date).ToStri ng + Year(Now.Date).ToStri ng + ".txt"IDts.Variables("mOutFileName").Value = sFi nalFileNameA ndPathDts.TaskResult = Dts.Results.SuccessEnd Sub _ ” " .”下圖是在粘貼以上編碼后的部分腳本。討論VB.Net編碼有點超出了本文所討論的范圍,這里只簡要解釋一下。以上代碼從SSIS變量讀取目錄信息轉(zhuǎn)化為一個字符串變量,并保證該變量

8、以“”字符結(jié)束,以實現(xiàn)完整文件名和文件路徑的格式化。文件前綴同樣是由一個字符串變量里獲取。我們把輸出路徑和文件名制成一個字符串變量,動態(tài)添加進月份和年到文件名中。文件的擴展名最后添加“ .txt結(jié)束。最后完整文件路徑中設(shè)定SSIS變量mOutFileName。記住我們在腳本任務(wù)里把改變量設(shè)置成可讀寫。最后,把DTS.TaskResult值設(shè)置為成功,結(jié)束腳本?,F(xiàn)在可以關(guān)閉VSA環(huán)境了。更改平面文件連接右擊并選擇屬性選項選擇屬性表達,Co nn ectio nStri ng屬性,如下圖所示。選擇平面文件連接對象“ CSV文件輸出” 然后點擊省略號。在屬性表達編輯器里,選擇然后選擇“,”按鈕,打開

9、下圖所示的建立表達界面。把表達設(shè)置為User:mOutFileName,可以通過從變量視窗里把值拖動到表達視窗里, 如下圖所示,然后選擇確定。SpBCfly Hhefor the prop«ly: Ccmection£l:rH_gSyslem- LxdhIO1*_j M*berna毗:程 FundigmS=Slmg FwnGbcrK百艸tew. M.ictTnerJam?_j Dar»Aime Fumbxi;Usfir:fnCiccloryr ,_j. UULLFoiclioi%Uier .irfilsFicfih* _J FCmJ!1 LI m . iftO uiF+ IJ Gpei&cu£網(wǎng)削 OlMncck 5j*5(em Packap&> PchgeNrie 專嚴 terar 負 mrdmim 巳rWE1 1: :q|h 程2 Sern- VefsrcnBtiiiJ Syttn VcrsiariCjoiiMnr'j'Desctipiw普ogrn燈円書i it屛liFinr1 >Evaluated value:|U :ernnO utF iWJame;,JX專育網(wǎng)Exalu戲淀申emn右7 °罠 Ff血即雷j輕松搞定?,F(xiàn)在你已經(jīng)動態(tài)修改了你的文件名,在文件名最后添加了年份

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論