需要帮助来更新SSIS中foreach循环的记录
问题描述:
我正在处理数据清理项目,我正在执行第1个存储过程以获取所有有问题的数据并将其存储到具有ID,IND_REF,CODE的临时表1中。需要帮助来更新SSIS中foreach循环的记录
表的结构是:
ID | IND_REF|CODE
12 | 2333 |ABC
13 | 1222 |EFG
现在提供IND_ref相关联的每个代码是表2和表电子邮件,其中数据将被更新的主键。
接下来,我又写了存储过程与IF
声明指出,
- 如果代码= ABC然后更新学校电子邮件作为主要的电子邮件,其中emailtable_ID =临时表IND_REF
一旦更新所有的一排电子邮件表通过参考临时表IND_REF我用另一个if语句,
- IF code ='EFG'do that .... wh ERE table2_ID =临时表IND_REF ...
等..
基本上我想引用与每个IND_REF相关的代码更新直播表的行...
我可以用SSIS包实现这一点?我可以循环访问临时表来更新实时表吗?任何帮助将非常感激。我对SQL世界很陌生,所以我发现很难通过设置计数器来更新实时表来遍历每条记录。任何脚本的帮助将是非常有帮助的。
答
我不明白你的问题,但让我告诉你一个例子:
如果我们有这样的一个表:
TABLE1
ID ind_ref code
1 1 ABC
2 15 DEF
3 17 GHI
和表像这样:
TABLE2
ind_ref2 code
1 ZZZ
2 XXX
3 DDD
4 ZZZ
5 XXX
15 FFF
17 GGG
然后,如果我们运行此查询:
UPDATE TABLE2
SET Code = TABLE1.Code
FROM TABLE1
WHERE TABLE1.ind_ref = TABLE2.ind_ref2;
表2最终会是这样的:
TABLE2
ind_ref2 code
1 ABC <= I got updated
2 XXX
3 DDD
4 ZZZ
5 XXX
15 DEF <= me too
17 GHI <= and me
如果这不是您的数据或要求,请花时间来铺陈的例子,因为我有:解释,你有,你想要什么样的数据看起来像。
注意:这里不需要SSIS,也不是循环。
你为什么要改变表格?你不改变列。所有你需要的是_one_ update语句来完成所有这些。你不需要游标或循环 –
非常感谢。我唯一担心的是我已经捕获了所有问题记录的帐户ID,并用代码存储了每个问题。例如ID 123,444,333,22,11,1111,全部都有不正确的组织名称,它保存在代码为'ILOL'的临时表中。现在在update语句中,如果代码= ILOL,则引用它,然后更新org表,其中ID =登台表ind_ref。我如何通过ssis包循环临时表来执行此更新 – Biswa