SSIS工作流设计混乱

时间:2014-02-04 20:39:25

标签: ssis

来自SSIS noob的问题。我来自C#背景,并注意到可以使用SSIS中的Script Task组件实现很多。

我必须完成的任务如下:从(sql表)获取学生卷号的列表,比如1,23,4和56.有一个包含M1.pdf,M2.pdf的标记文件夹,对于班上的所有学生,..M65.pdf等(命名约定是M,后跟roll number.pdf)。因此,对于上面的学生名单,即1,23,4和56,抓住pdfs M1.pdf,M23.pdf,M4.pdf,M56.pdf,压缩这四个pdf并发送电子邮件给院长。

SSIS专家是否可以建议如果所有这些都可以在没有脚本任务的情况下实现。我知道获取SQL结果集,压缩和发送电子邮件很容易。但是,使用除Script Task之外的任何SSIS组件,获取pdfs列表(M1.pdf,M23.pdf ...)的逻辑是否可行?可以在这里使用Foreach吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用Foreach循环容器。

首先,构建一个数据流任务,使用Recordset Destination将SQL查询的结果传递给Variable(类型Object)。

然后将Foreach循环容器添加到控制流。在“收集”窗格上,将“枚举器”设置为:“Foreach ADO枚举器”,然后选择“变量”。在“变量映射”窗格上,为您需要的每个列(从SQL查询)创建新变量。请注意,索引是位置的,由Recordset Destination的配置驱动。

现在,Foreach循环容器将为Recordset中的每一行触发一次,您可以使用新的变量来访问每行中的值。