2013-01-04 65 views
2

我是SSIS的新手,我的任務是join multiple tables並將其插入到 目標表中。使用SSIS的單個轉換加入多個表2008

源表來自SQL Server,目標又是SQL Server。

所有的表都有關係,只需要加入並再次將 數據插入到SQL Server表中。

我想用SSIS中的SINGLE transformation項目來完成。

請給我的步驟來實現這一目標。

+2

如果表在一個服務器上,您可以使用Query ... – Justin

+0

一個視圖可以做到嗎?這是相當簡單的無關SSIS – Sankara

回答

5

一種方法是直接使用oledb command並通過映射列(Column Mappings Tab)編寫SQL

你可以使用一個merge join transformation的.sort你OLEDB來源.Right單擊該組件上轉到Show Advanced EditorInput Output Properties中選擇一個輸出列,並將sort key option0更改爲1。現在使用合併連接組件並將常用列映射爲連接鍵,然後選擇需要的列作爲輸出。使用OLEDB destination映射上述組件的輸出列並轉儲數據。

檢查this文章

兩個以上兩種技術只使用1個組件進行連接

+0

嗨, 我不想使用oledb命令方法。使用一個合併連接任務,我們只能連接兩個表。我需要在單個轉換中加入多個連接。 任何方式來做到這一點。 謝謝 – Jintu

+0

首先你使用'merge join'連接'2個表',並且它的輸出應該從第三個OLEDB源合併,並且再次爲多個'OLEDB源'執行相同的過程 – praveen

+0

嗨,但是隻有一次我可以使用獲得輸出的轉換。我的意思是隻有單一trasformation(不超過1合併連接)。 – Jintu

0

如果源表位於1個單一SQL Server實例,你應該使用「OLEDB源」或' SQL Server源「。 在數據訪問方法列表框中,選擇SQL命令並編寫或構建連接查詢。

這種解決方案的性能要好得多然後使用合併聯接轉換

0

我將開始與一個OLE DB源,只有從你的事實/交易/最詳細的表中選擇列。

然後,我會爲每個參考表添加一個查找轉換。

最後,我會添加一個OLE DB目標以將數據插入目標表(理想情況下使用快速加載和表鎖)。

此設計提供了最佳運行時性能,並確保每個組件都簡單快捷。