用另一个表过滤一个SQL表

Filtering a SQL Table With Another Table


问题

大家下午好 -

我有一个新导入数据的表,我需要从这个表中过滤出在另一个表中找到的匹配行,只留下新行。一个障碍可能是表1的数据和表2的数据在不同的服务器上,但我想只要为每个服务器添加一个连接管理器就足以解决这个问题。

我似乎记得有一个任务可以做这样的事情,但我找不到它,无法拯救我。有没有人有什么想法?

提前感谢任何帮助!

答案1

你好 ,

我们可以使用OLEDB源和 Lookup Transformation 来获得匹配数据和无匹配数据。
我们应该在Lookup一般页面中把 指定如何处理没有匹配条目的行 设置为 把行重定向到没有匹配的输出

请参考以下图片。
58443-df.png
58444-lookup-general.png
58445-lookup-connection.png
58328-lookup-columns.png

最好的问候,
Mona


你好,

我想知道你是否有什么要更新的?

Best Regards,
Mona

答案2


你可以为此目的用数据流任务创建一个SSIS包
在数据流任务中,有两个OLEDB源连接到你的两个服务器表,按连接列排序。然后使用一个合并连接,将两个OLEDB源连接到两个输入。确保你为来自OLEDB源的两个输出设置isSorted属性为true,并在输出列中标记排序列SortKey值为1,2等。然后采取合并连接的输出,并将其链接到条件分割任务。在条件中添加一个输出

 ISNULL([Column]) == TRUE

其中[Column]是你第二个表中的连接列。然后将条件拆分输出链接到你想要的目的地,以获得只有不匹配的行

相同问题还可以参考: Filtering a SQL Table With Another Table