我有一个关系数据库,我想将一个分层数据的子集从一个数据库复制到另一个数据库。我已经找到了很多关于移动或复制具有各种变换的单个表的信息,但在基本的分层移动方面却没有太多信息。
关于在SSIS中执行此操作,我有三个问题。
一个solution to a question about moving data描述了创建聪明的登台表以创建新ID。这使我认为SQL UniqueID优于整数自动增量ID,因为可以简单地设置“保持身份”而不会出现冲突问题。这是真的吗?
这是我的数据库的简化模式(Parent< -Child):
OptimizationSets<-AllocationLimits
Assets<-AllocationLimits
Assets<-Returns
我想从OptimizationSets表中选择一些行来从一个数据库复制到另一个数据库。另外,我想在AllocationLimits中复制相应的子行。我可以使用OLE DB源轻松选择所需的父行,但选择子行似乎并不明显。 lookup函数只返回一个子行而不是所有子行。
除了AllocationLimits中的选定行之外,我还想复制Assets中的相关父行以及相关的返回。
答案 0 :(得分:0)
这不是一个完整的答案,但可以使用合并连接和查找块来完成分层移动。需要对某些数据流进行排序,这可以通过块或排序块中的SQL语句来完成。
这里有一点流程(对不起,因为我是新手而无法发布图片):
遗漏了一些细节,例如源上的一些SQL WHERE和ORDER BY子句,但一般流程非常简单。通过MergeJoin和Lookup块可以完成孩子和父母的学习。