0

マルチレベルの親子関係レコードを含むソース ファイルがあります。例:

ID  ParentID    Name
A1  NULL        Sam
B1  NULL        Sri
A2  A1      Nick
B2  B1      Sree
A3  A2      Nish
A4  A3      Raj

説明:

A1 --> A2 --> A3 --> A4

A1 --> Parent of A2
A2 -->Parent of A3
A3 --> Parent of A4

B1-->B2

B1 --> Parent of B2

これらのレコードを、以下のように Identity 列を含む Destination テーブルにロードする必要があります。

ID  ParentID     Name
1   NULL        Sam
2   NULL        Sri
3   1       Nick
4   2       Sree
5   3       Nish
6   5       Raj

さて、決まったレベル(関係の深さ)はありません。

-   Is there any way to load in one go all records ?
4

1 に答える 1

0

宛先テーブルに列を追加できますか?

もしそうなら:

  1. SourceId2 つの列を追加SourceParentIdしてDestination表を作成します
  2. データ フローNULLでは、宛先のParentIDおよびIDおよびParentIDソースからSourceIdそれぞれおよび に格納されますSourceParentId。このステップの後、宛先テーブルは次のようになります。
    ID ParentID 名前 SourceId SourceParentId
    1 NULL サム A1 NULL
    2 NULL スリ B1 NULL
    3 NULL ニック A2 A1
    4 NULL スリー A2 A1
    5 NULL 西 A3 A2
    6 NULL Raj A4 A3
    
  3. Execute SQL Taskの SQL での宛先での実行:
    
    update dest set [ParentID] = src.ID
    from [dbo].[Destination] dest inner join [dbo].[Destination] src 
    on dest.[SourceParentId] = src.[SourceId]
    
    これにより、 が更新されますParentID
于 2012-10-05T15:33:14.127 に答える