在SSIS

时间:2017-10-04 08:41:06

标签: stored-procedures ssis store foreach-loop-container

我正在进行数据清理项目,我正在执行第一个存储过程以获取所有有问题的数据并将其存储到具有ID,IND_REF,CODE的登台表1中。

表结构是:

ID | IND_REF|CODE
12 |  2333  |ABC
13 |  1222  |EFG

现在,与IND_ref相关联的每个代码都是table2和email表的主键,其中数据将被更新。

接下来,我用IF语句写了另一个存储过程,说明了

  • 如果代码= ABC,则将学校电子邮件更新为主电子邮件,其中emailtable_ID =登台表IND_REF

一旦通过引用表IND_REF更新了电子邮件表的所有行,我使用了另一个if语句,

  • IF code ='EFG'那样做......其中table2_ID =登台表IND_REF ......

依旧......

基本上我想通过引用与每个IND_REF关联的CODE来更新实时表行...

我可以使用SSIS包实现这一目标吗?我可以循环登台表来更新实时表吗?任何帮助将非常感激。我是SQL世界的新手,所以我发现通过设置计数器来更新实时表很难遍历每个记录。任何有关脚本的帮助都会非常有用。

1 个答案:

答案 0 :(得分:0)

我不明白你的问题,但让我告诉你一个例子:

如果我们有这样的表:

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,也没有循环。