SSIS包中的动态查询

时间:2009-07-10 15:18:14

标签: sql ssis

我在SSIS包中有一个OLE DB Command组件,它运行针对SQL表的更新语句。现在,我的陈述最初就像是:

update myTable set columnA=?, columnB=? where columnC=?

三个“?”是从另一个Conditional Split组件输入到我的组件的位置。我可以将每个列名与每个输入参数(?)链接起来,因此列A = param0,列B = param1。

现在,我的查询更复杂,我需要做;

update myTable set columnA=(param1+param2), columnB=(param2) where columnC=param1*param2

如何在SSIS中执行此操作?

2 个答案:

答案 0 :(得分:2)

为什么不在update命令之前只有一个派生列,并计算这些字段?

创建名称/值如下的新列:
columnA =参数1 +参数2:
columnB = param2的:
columnC =参数1 *参数2:

然后将输出重定向到update命令并将其用作参数。这样,您就不必在查询中进行任何计算,从而使IS包更清晰。

答案 1 :(得分:1)

是。只需在派生列变换中计算这些值,然后使用它们代替您现在使用的参数。