需要帮助来设置包含Foreach循环容器SSIS的包

时间:2011-01-11 15:28:51

标签: sql-server ssis

我是SSIS包的新手,我想要完成一个特定的流程。

1st)我想从SQL Server数据库中获取记录集并标记我已检索到特定行。

2nd)循环遍历每一行

3rd)通过调用Web服务循环的每一行,并将两个字段作为输入参数传递给Web服务。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

执行此操作的第一步是创建一些SSIS变量。选择查看>其他Windows>用于显示变量窗口的变量。添加一个包含SQL查询结果集的变量。将数据类型设置为Object。为查询中选择的每个列创建其他变量。

在“连接管理器”选项卡中,添加新的“连接管理器”。使用SQL Server连接信息(例如,服务器名称,身份验证和数据库等)编辑和配置新的Connection Manager

将执行SQL任务添加到控制流。编辑任务。在Connection属性中,选择新的Connection Manager。在SQLStatement属性中输入SQL SELECT语句。将ResultSet属性设置为完整结果集。

在“执行SQL任务”中选择“结果集”选项卡。添加新结果集。将Result Name设置为0,将Variable Name设置为您之前创建的对象变量。关闭编辑器。

添加Foreach循环容器以控制流程。从执行SQL任务到Foreach循环容器创建优先约束(绿线)。这将确保在Foreach循环启动之前SQL任务必须成功。

编辑Forach循环容器并选择“收集”选项卡。将Enumerator属性设置为Foreach ADO枚举器,并在ADO对象源变量中选择对象变量。选择“变量映射”选项卡。选择将检索每行的列值的变量。通过选择索引0将第一个变量与第一列相关联。索引1将是第二列,等等。

在Foreach循环容器中添加Web服务任务。此任务将对结果集中的每一行运行一次。您可以使用变量值来配置Web服务任务。如果属性不直接接受变量,则可能需要使用表达式。

如果要一次标记一行,可以添加另一个执行SQL任务并将其放入Foreach循环容器中。与第一个执行SQL任务类似地配置它,但创建SQL UPDATE语句。您可以考虑一次更新行的所有行以获得更好的性能。如果是,则将执行SQL任务移出Foreach循环容器并配置UPDATE语句,以便更新行集。