我在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中执行此操作?
答案 0 :(得分:2)
为什么不在update命令之前只有一个派生列,并计算这些字段?
创建名称/值如下的新列:
columnA =参数1 +参数2:
columnB = param2的:
columnC =参数1 *参数2:
然后将输出重定向到update命令并将其用作参数。这样,您就不必在查询中进行任何计算,从而使IS包更清晰。
答案 1 :(得分:1)
是。只需在派生列变换中计算这些值,然后使用它们代替您现在使用的参数。