比较两个相似但不相同的数据表

我有两个数据表,它们有一个共同的主键列,但是不同的结构,因为它们是从不同的表创建的。 我想检查数据表B中与A相比缺少哪些行,目的是将缺少的行添加到数据库中。

我已经看过像这样的问题,它提供了很好的答案,但数据表通常被认为是相同的。

因为我想获得一个用于插入的新行列表,有没有办法可以在不迭代行并检查PK的情况下执行此操作? 如果我没弄错的话, Merge将保留旧行,我不想重新提交到数据库。

两个表只有几十行,最多几百行。 无论如何,逐行进行计算的命中率是否可以忽略不计?

编辑:两个源表位于不同的数据库/服务器上,因此我无法轻松地在SQL中进行比较。 无论如何,我更喜欢使用消费应用程序,因为我可能会在完成之前添加更多行处理。

我希望我能正确理解你的需求,但是如何使用Linq呢? 将2个表的键加载到2个IEnumerable对象中,例如(假设键的类型为int

 IEnumerable 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