2009-04-15 12 views
0

自分のソースDBにテーブルがあり、自己参照していますSSIS - 親のルックアップ代理キー

| BusinessID | ... | ParentID |

このテーブルは、DWでは となります。| SurrogateID | BusinessID | ParentID |

最初の質問は、DW参照のParentIDがサロゲートIDかビジネスIDかどうかです。私の考えは、それが代理IDを参照する必要があるということです。

私の問題は、SSISのデータフロータスクで、親のサロゲートキーをどのように調べることができますか?

ParentIDが最初にヌルで、次にヌルでない行をすべて挿入すると、問題の一部が解決されます。

しかし、私はまだ子供でもある親を参照する可能性のある行を参照する必要があります。

I.e.ルックアップ変換を使用できるようにするために、親が最初にDBにロードされていることを確認する必要があります。

ソートされた入力のfor-eachに解決する必要がありますか?

+0

[自己参照表を構築する方法]の複製が可能です。(http://stackoverflow.com/questions/11834672/how-to-build-self-referencing-table) – AHiggins

答えて

1

私がこの状況で使った1つのトリックは、ParentIDなしでローをロードすることです。その後、別のデータ・フローを使用してソース・データとロードされたデータに基づいて更新スクリプトを作成し、SQLタスクを使用して作成した更新スクリプトを実行しました。それはエレガンスの賞を獲得しませんが、それは動作します。

+0

完璧な、ありがとう! –

関連する問題