Sql server 需要帮助来设置包含Foreach循环容器SSI的包吗

Sql server 需要帮助来设置包含Foreach循环容器SSI的包吗,sql-server,ssis,Sql Server,Ssis,我是SSIS软件包的新手,我想完成一个特定的过程 1)我想从SQL Server数据库获取一个记录集,并标记我已检索到特定行 第二)循环通过每行 3)对于循环通过的每一行,调用web服务并将两个字段作为输入参数传递给web服务 任何帮助都将不胜感激。完成此操作的第一步是创建几个SSI变量。选择查看>其他窗口>变量以显示变量窗口。添加一个包含SQL查询结果集的变量。将数据类型设置为Object。为查询中选定的每列创建其他变量 在“连接管理器”选项卡中,添加新的连接管理器。使用SQL Server连

我是SSIS软件包的新手,我想完成一个特定的过程

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

第二)循环通过每行

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


任何帮助都将不胜感激。

完成此操作的第一步是创建几个SSI变量。选择查看>其他窗口>变量以显示变量窗口。添加一个包含SQL查询结果集的变量。将数据类型设置为Object。为查询中选定的每列创建其他变量

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

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

在执行SQL任务中选择结果集选项卡。添加一个新的结果集。将结果名称设置为0,将变量名称设置为先前创建的对象变量。关闭编辑器

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

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

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


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

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

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

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

在执行SQL任务中选择结果集选项卡。添加一个新的结果集。将结果名称设置为0,将变量名称设置为先前创建的对象变量。关闭编辑器

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

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

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


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

感谢您的演练!除了执行SQL任务的第一部分外,我一直在关注它。我将其更改为调用数据库上的过程。该过程将更新已完成的记录,并返回更新记录的记录集。我使用以下设置:ConnectionType“ADO SQLSourceType”直接输入“,是否有一种方法仅在webservice调用失败时执行额外的操作?是的。您可以创建退出Web服务任务的多个优先约束。优先级约束默认设置指示如果上一个任务成功,则转到下一个任务。如果上一个任务失败,您可以更改此设置以转到下一个任务。因此,Web服务中的绿线表示成功路径。将Web服务中的另一个优先级约束添加到失败路径的“执行额外的内容”任务中。编辑优先级con