2011-09-27 44 views
2

我有麻煩解決這個小問題,希望有人可以幫助我。SSIS通過數據源之間的控制流任務

在我的SSIS包中,我有一個數據流任務。 有幾種不同的轉換,合併和轉換髮生在這裏。

在數據流任務結束時,有兩個數據集,一個包含需要比較的兩個數字,另一個包含一堆記錄的數據集。

理想情況下,我希望將這些傳遞給一個全新的數據流任務(單獨的序列容器),在那裏我可以對其進行驗證並分離邏輯。

我不能爲我的生活弄清楚如何去做。 Iv試圖研究腳本並將數據集存儲爲變量,但我不確定這是做到這一點的正確方法。

下一步是將大型數據集導出爲電子表格,但在此之前,我需要比較來自其他數據集的兩個數字並確保它們是正確的。

回答

6

要將數據流中的數據流傳遞給另一個數據流,必須有臨時位置。

這意味着您必須將數據放在一個數據流的目標中,然後在另一個數據流中讀取該數據。

你可以把數據在目的地的數量:

  • 數據庫表
  • 原始文件
  • 平面文件
  • 數據集變量(記錄目的地)
  • 任何其他目標組件,你可以從相應的源組件讀取或通過編寫腳本或其他任何東西

原始文件旨在用於這種情況。它們是二進制的,因此它們的寫入和讀取速度非常快。

如果您堅持使用記錄集目標,請查看http://consultingblogs.emc.com/jamiethomson/archive/2006/01/04/SSIS_3A00_-Recordsets-instead-of-raw-files.aspx,因爲沒有記錄集源組件。

+0

I 'd實際上與2個數字的Recordset目的地相同,因爲它可以很容易地被分解以處理比較邏輯和「一堆記錄」的原始文件 – billinkc

0

數據流任務需要有一個目標;數據流任務同樣不是目的地。否則,數據不會在管道中的任何地方。根據我的經驗,您最好的投注是:

1)將數據泵入SQL Server中的登臺表中,然後從那裏取出驗證。 2)在同一個數據流任務中進行驗證。

+0

是的,那是什麼現在在做什麼,我似乎通過這樣做保持複製數據。 – Cheyne

+0

@Cheyne - 我知道這是6年後,但對於未來的人 - 這可能是在再次使用表之前清除表的結果,在包的開始處添加「if exists delete」語句可以幫助 –

相關問題