我有一个Source文件,其中包含多级中的父子关系记录。 示例:
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 ?
答案 0 :(得分:0)
您可以在目标表中添加其他列吗?
如果是这样的话:
SourceId
和SourceParentId
执行Destination
表NULL
和ParentID
的来源的目标ID
以及ParentID
和SourceId
中的数据流存储SourceParentId
。完成此步骤后,您的目标表应类似于:
ID ParentID Name SourceId SourceParentId 1 NULL Sam A1 NULL 2 NULL Sri B1 NULL 3 NULL Nick A2 A1 4 NULL Sree A2 A1 5 NULL Nish A3 A2 6 NULL Raj A4 A3
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
。