2009-07-10 59 views
0

我在运行SQL表的更新语句的SSIS包中有一个OLE DB命令组件。现在,我的发言一开始是这样的:SSIS包中的动态查询

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

凡三个人才是从另一个条件性拆分分量输入到我的组件“?”。我可以将每个列名与每个输入参数(?)关联,所以列A = param0,列B = param1。

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

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

我该如何在SSIS中做到这一点?

回答

2

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

创建具有名称/值作为这样的新列:
columnA =参数1 +参数2:
columnB = param2的:
columnC =参数1 *参数2:

然后输出重定向到所述更新命令和用它们作为参数。这样,你不必在你的查询中做任何计算,这就使得IS包更加清洁。

+0

是的,这就是我最终做的。 – Saobi 2009-07-10 15:49:44

1

是的。只需在派生列转换中计算这些值,并使用它们而不是您现在使用的参数。