如何比较SSIS中的两个表?(SQL Server)

Fra*_*tin 3 sql-server ssis sql-server-2012

我正在创建一个SSIS包,它将比较两个表,然后在另一个表中插入数据.

我应该使用哪种工具?我试图使用"条件分割"但看起来它只需要一个表作为输入而不是两个.

这些是我的表:

表格1

身份
状态

TABLE2

身份
状态

表3

ID
STatus

我想比较两个表中的STATUS字段.如果TABLE1中的Status为"Pending",而TABLE2中的Status为"Open",则在TABLE3中插入此记录.

Ozr*_*ric 12

如果你的表不大,你可以使用Lookup完全缓存的转换,但我不推荐它,因为如果你的表增长你将遇到问题.我知道我做到了.

我建议Merge Join改造.您的设置将包括以下内容:

  • 两个数据源,每个一个表
  • 两个Sort转换,因为Merge Join转换需要排序输入; 我想你需要使用ID来匹配记录,所以这将是一个排序标准
  • 一个Merge Join转换连接两个(左和右)数据流
  • 一个Conditional Split转换,用于检测表中是否存在正确的状态
  • 任何额外需要的转换(例如Derived Column,引入您必须插入目的地表的数据)
  • 要插入目标表的一个数据目标

这应该有所帮助,因为文章解释了几乎确切的问题/解决方案.