【问题标题】:Multilevel Parent-Child records from one source file in SSISSSIS 中一个源文件的多级父子记录
【发布时间】:2012-10-05 13:33:40
【问题描述】:

我有一个包含多级父子关系记录的源文件。 示例:

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

现在我必须将这些记录加载到目标表中,如下所示的标识列。

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 ?

【问题讨论】:

    标签: sql sql-server ssis


    【解决方案1】:

    您可以向目标表添加其他列吗?

    如果是这样:

    1. 添加两列 SourceIdSourceParentId 做你的 Destination
    2. 在数据流期间将NULL 存储在目标的ParentIDIDParentID 中,分别来自SourceIdSourceParentId 中的源。在此步骤之后,您的目标表应类似于: ID ParentID 名称 SourceId SourceParentId 1 空 山姆 A1 空 2 NULL 斯里 B1 NULL 3 NULL 尼克 A2 A1 4 NULL Sree A2 A1 5 NULL 尼什 A3 A2 6 空拉吉 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多