使用脚本任务来动态创建SSIS包变量_第1页
使用脚本任务来动态创建SSIS包变量_第2页
使用脚本任务来动态创建SSIS包变量_第3页
使用脚本任务来动态创建SSIS包变量_第4页
使用脚本任务来动态创建SSIS包变量_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、使用脚本任务来动态创建 SSIS包变量SSIS的优点之一就是能够动态创建 可以输入并控制不同元素的任务,不需要硬编码只能执 行一项任务的程序包。这里我们可以来学习如何使用脚本任务来动态创建输出文件。简单来说,我们是要利用包变量来生成一个代表输出文件的位置和名称的输出文件名, 利用脚本任务来动态创建输出文件名。使用这个方法来修改变量信息并不只限于输出文件信息。你还可以用这个方法来生成输 入文件位置、用于执行SQL任务的复杂查询、插入数据等等。脚本任务是一个很强大的工具, 向程序开发员提供了别的控制流工具所不具备的性能。我们下面提供了一些简单的例子,使用脚本任务来动态修改分配给一个输出平面文件连

2、接的变量,进而可以按照我们选择的文件名和位置来保存该文件。创建程序包首先,利用 SQL Server Busin ess In tellige nee Desig n Studio (BIDS)新建一个In tegrati on Services项目。在控制流表面上添加一个数据流任务在连接管理器里,创建一个连接到AdventureWorks数据库的OLE DB连接双击数据流任务,并添加一个OLE DB来源,设置为任意的表或视图(在这里我使用 Purchasing.vVendor视图) 添加一个平面目的文件,并通过数据源路径(绿色箭头)连接这两个对象,如下所示。打开平面目的文件编辑器,新建一个连

3、接,选择名为“CSV File Output ”的输出文件类型。另外,选择任意的一个文件名,该文件名会在之后被动态生成。Withcrapting.dtK Design*严 Contro.DataF. :?:ExecuL,.Dafa Flo艸 Task;IX专家网添加程序包变量回到控制选项卡,右击除对象和选择变量以外的任意位置。(这样做是为了保证下一步即将设计的变量适用范围包含整个程序包。)另外一种办法是从菜单里选择视图 I其他视窗|变量。添加以下变量(在程序包范围内)。名称描述类 型值mDirectory文件输出目录。字 符 串C:SSISOutputmFilePrefix文件名(适用于你所在

4、组织的描述性名称)字 符 串Ven dorsmOutFileName获得用于平面文件连接的输出文件名和路 径。设置一个默认的值(使用平面文件连接 对象使用的当前文件路径)字 符 串C:SSISOutputVe ndors.txt添加脚本任务现在向控制流中数据流任务以上添加一个脚本任务。连接这两个对象(从脚本任务到数据流任务),并存在优先约束,如下图所示。打开脚本任务编辑器。我们会使用默认设置,但是需要向脚本选项卡里添加以下变量。通过在这个属性窗口里设定变量,我们可以让这些变量适用于脚本任务。注意:变量名称必须跟之前设定的一致,并且区分大小写。ReadO nly VariablesmDirect

5、ory, mFilePrefixReadWriteVariablesmOutFileNameF面是设定脚本变量的例子。然后选择“设计脚本” ”按钮,就可以打开 Visual Studio for Applications (VSA) 设计环境。在默认设置中,你只有一个设计方法: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变量读取目录信息转化为一个字符串变量,并保证该变量

8、以“”字符结束,以实现完整文件名和文件路径的格式化。文件前缀同样是由一个字符串变量里获取。我们把输出路径和文件名制成一个字符串变量,动态添加进月份和年到文件名中。文件的扩展名最后添加“ .txt结束。最后完整文件路径中设定SSIS变量mOutFileName。记住我们在脚本任务里把改变量设置成可读写。最后,把DTS.TaskResult值设置为成功,结束脚本。现在可以关闭VSA环境了。更改平面文件连接右击并选择属性选项选择属性表达,Co nn ectio nStri ng属性,如下图所示。选择平面文件连接对象“ CSV文件输出” 然后点击省略号。在属性表达编辑器里,选择然后选择“,”按钮,打开

9、下图所示的建立表达界面。把表达设置为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£网削 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专育网Exalu戏淀申emn右7 °罠 Ff血即雷j轻松搞定。现在你已经动态修改了你的文件名,在文件名最后添加了年份

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论