1

整天都在做这件事,这让我发疯。我是 SSIS 的新手(通常是 C# 程序员),所以事情不像我期望的那样工作:)

(tl;博士 - 我如何使用 ADO ForEach 枚举器并将整行作为变量传递给内部的数据任务(其中包含一个脚本组件)?)

场景:我在数据任务中使用 CDC 拆分器组件从数据库中的 CDC 表中检索和拆分 INSERTS、UPDATES 和 DELETES。我将每个更改分配给作为记录集的包级别对象变量。

仅使用 INSERTS 对象变量,我想检查提供的字符串数据的条件,如果它是真的,我想通过电子邮件将更改发送给某人。

为了实现这一点,我在表面上放置了一个 ForEach 容器并将其连接到 INSERTS Object 变量。然后在该容器中我删除了一个数据流任务,然后在该数据流任务中我删除了一个脚本组件。

这个想法是,如果当前行满足某些条件,则该行将被添加到脚本组件的输出缓冲区。困扰我的是,似乎实现这一目标的唯一方法是将行中的每一列映射到 ForEach 循环变量集合。我看到的每个示例都显示了从索引 0 等开始映射的变量。但是我的行有很多列,我不想为每一列创建变量,这样做似乎是错误的。

所以问题是.. 在 ADO Enumerator ForEach 容器中,如何将当前行(所有列)传递给内部的数据任务(进而传递给数据任务中的脚本任务)?

感谢您的任何建议...

4

0 回答 0