2013-12-23 62 views
2

我正在開發一個每15秒運行一次的作業,該作業將提供我們某些數據的「實時」視圖。在SSIS數據流中從源更新目標任務

它從查看特定應用程序的不同服務器上的源上拉取。

在過去,我們截斷了目的地並插入。但是,我想用新來源更新目的地,所以我們沒有看到4000計數到0,然後返回到4003.

一個解決方案是有一個臨時表,然後有一個任務從該臨時表更新目標表。

這是首選的方式嗎?這感覺很髒。

我注意到在數據流任務OLE DB目標中,我可以將數據訪問模式更改爲SQL命令。任何想法,我可以參考這個命令的來源?數據在我們這邊可以操縱的地方似乎是合乎邏輯的。

感謝您的幫助!

+0

您是否需要更新對行的更改或者只需插入新行? – Zane

+0

是;我應該指出 - 該表中只有大量10-15條記錄。我會簡單地更新它們。 – user1310989

回答

2

如果您只做了幾條記錄,爲什麼不使用查找來匹配您已有的內容然後插入或更新。

OleSource To Lookup

QueryToMatch

然後在沒有比賽做BULK INSERT和上一場比賽做一個UPDATE

+0

這很棒。我注意到的一個特點是當任務失敗時(沒有該鍵的映射),它輸出失敗的記錄,我將其放入OLE DB目標中。然後插入失敗的行(不確定這是你的意思大容量插入,但這可能實際上發生在後端)。無論如何,這完美的作品。 – user1310989

+0

很高興我能幫到你。 – Zane

+0

你可以顯示你的連接管理器嗎? – Kermit

相關問題