2012-05-07 65 views
1

多個SSIS包將數據導入多個參考表(即國家,貨幣,語言等)。SSIS查找 - 未知代碼確定

在傳入數據代碼不是在這些參考表中找到的代碼的一部分(即語言有未知代碼)的情況下,這些表格中的每一個都有特殊值。這樣做是爲了保持參照完整性並追蹤我們系統未知的傳入代碼。這是完全正常的,我們需要保持這個過程。

SSIS如何輕鬆確定傳入值不是引用代碼集的一部分?發生這種情況時,如何爲其分配未知代碼?

有沒有一種方法可以在多個列上全局執行此操作?

我試圖避免使用源中每列的查找任務。

謝謝你的時間。

+0

你好。我不明白你的問題。你能舉個例子嗎? – Diego

+0

導入的數據有代碼4,但代碼4不存在於參考表代碼中。如何在SSIS中檢測到這一點,並在不使用查找的情況下爲其分配默認值(因爲有許多字段需要查找)? – dirtyw0lf

回答

0

我看到的唯一可能的方式是使用代碼表的合併連接運算符(具有完全連接),然後使用派生表來轉換任何所需的NULL。

但爲什麼你不想使用查找?僅僅是因爲你需要查找的列數量和你擔心的性能?如果這就是問題,我建議你嘗試使用配置的FULL CACHE選項來實現查找。這樣,查詢查詢(您的示例中的代碼)將只執行一次,結果將保存在內存中。

+0

在數據流任務之後使用SQL任務來更新SQL更新語句中的值會有什麼影響? – dirtyw0lf

+2

哦,如果有這種可能性會更好 – Diego

+1

我同意迭戈,更新聲明將基於設置可能表現更好。這種類型的操作(加載後更新)的名稱是ELT:Extract,Load,Transform(如果您想了解更多關於此模式的信息......)。 –

0

使用查找轉換。這是實現這個最簡單的方法。