2013-08-19 25 views
0

我創建的SSIS包,這將在一個文本文件的標頭SSIS - 寫包含所述數據文件的行數平面文件頭

STARTDATE寫| ENDDATE | ROWCOUNT

隨後的結果的存儲過程。 ROWCOUNT是存儲過程中數據集中的行數。數據集寫入平面文件的主體。

我的包成功了。它有三個數據流任務:
確定行數, WriteHeader和 WriteData。

DetermineRowCount和WriteData都命中同一個OLE DB源 - 數據項的副本。

確定RowCount數據流是OLE DB Source - Data ---> Row Count設置RowCount變量的位置。

我想消除OLE DB源 - 數據的一個副本。

有沒有一種方法來獲得行數數據,寫標題,然後寫身體,而不調用存儲過程兩次?

回答

1

問題的簡短回答「是否有方法獲得RowCount和數據,寫入標題,然後寫入正文,而不調用存儲過程兩次?是,唉,「不」。至少,不是在單個數據流中。

但是,它可能消除第二次調用存儲過程。將行計數轉換添加到原始數據流並將計數保存到適當命名的變量。然後將腳本組件添加到包流中,以將所需的標題行添加到文本文件中。

-1

您可以在同一個數據流中寫入標題和正文。只需將RowCount組件放在那裏,就在源組件之後。

+0

我沒有鎖定在DataSource - > FlatFile?我認爲DataSource中的列必須映射到FlatFile列。我不知道如何在一個數據流中將標題和數據寫入平面文件。 – unholymackerel

+0

您可以確定計數從源到目標所經過的行數,但直到數據流的PostExecute事件觸發後,計數纔可用。 – billinkc

+0

billinkc - 是否有可能做什麼比喻建議? – unholymackerel