2009-07-10 57 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

是的。只需在派生列轉換中計算這些值,並使用它們而不是您現在使用的參數。