比较两个相似但不相同的数据表
本文关键字:数据表 相似 两个 比较 | 更新日期: 2023-09-27 18:02:29
我有两个数据表,它们有一个共同的主键列,但其他结构不同,因为它们是从不同的表创建的。我想检查与数据表A相比,数据表B中缺少哪些行,目的是将缺少的行添加到数据库中。
我看过这样的问题,它提供了很好的答案,但数据表通常被认为是相同的。
因为我想要得到一个新行列表来插入,有没有办法我可以做到这一点,而不遍历这些行并检查PKs?如果我没弄错的话,Merge
将保留旧的行,我不想重新提交到数据库。
两个表都只有几十行,最多几百行。无论如何,逐行处理的计算损失可以忽略不计吗?
edit:两个源表在不同的数据库/服务器上,所以我不能轻易地做SQL中的比较。无论如何,我更希望由消费应用程序来完成,因为在完成之前我可能会添加更多的行处理。
我希望我已经正确理解了您的需求,但是如何使用Linq?将2个表的键加载到2个IEnumerable<keytype>
对象中,例如(假设键的类型为int
)
IEnumerable<int> keys1, keys2;
// code to load the keys into these collections
// to find the keys in keys1 that are missing from keys2:
var missingKeys = keys1.Where(k1 => !keys2.Any(k2 => k2 == k1));
HTH
在SQL中这样做是不是更容易/更快,例如:
SELECT col1 FROM table1
MINUS
SELECT col1 FROM table2