2012-01-06 58 views
0

我有一個用於導入excel數據的SSIS包,我需要在導入數據時向表中添加一列,但是該列是人爲設計的數據從sql server數據庫中已存在的另一個表加入。SSIS:導入後在目標表中添加一列

有人知道我會怎麼做呢?

我試過「派生列」,但是,填充列的數據不是從源Excel數據派生的,而是從數據到另一個表的連接。

謝謝

+0

是否有理由不能僅僅爲此使用視圖? – JNK 2012-01-06 15:22:32

回答

2

我知道兩種方法。你可以在數據流中使用合併連接。這往往是緩慢的,因爲你必須對合並的兩個來源進行排序。如果你的數據集不大,這可能不會太糟糕。

如果您的數據源很大,我寧願先在一個數據流中將數據導入工作表。然後,第二個數據流中的數據源(即導入生產表的數據源)將成爲一個查詢,該查詢將工作表連接到要從中獲取其他信息的現有表。這樣做更耗時,但在這裏,我們從來不會導入任何沒有工作表的任何東西,因爲它可以更輕鬆地回溯到研究數據導入問題。這也使我更容易在導入之前清理數據,因爲我不喜歡在數據流中進行清理。

+0

我傾向於同意第二種解決方案。分級數據並在SQL Server中完成所需的工作。但是,您可以在數據流的上下文中使用合併連接或查找來完成所有操作。 – 2012-01-06 19:12:35

+0

我知道你可以在數據流方面做到這一切,我發現它們比使用t-sql清理數據更難以維護。 – HLGEM 2012-01-09 15:12:32

+0

同意。分階段處理數據並使用t-sql清理數據會更好。 – 2012-01-09 17:43:57

4

除了來自@HLGEM的方法之外,您還可以使用查找

+0

我alawys忘記查找 – HLGEM 2012-01-09 15:13:08