我需要找到2个结构相同的sql表之间的差异
每个表都从第3部分工具上载到sqlserver数据库中。

表结构为:

Issue ID-status-Who


问题ID将在表中不再重复,尽管未明确定义为主键

任何两个表之间可能都有添加/删除/更新。

我需要的

Number of rows added & their details
Number of rows deleted & their details
Number of rows updates & their details


我该怎么做呢

1)使用sql更好吗
2)或使用数据表

最佳答案

您可以使用两个左联接和常规联接进行更新。关于TableA,这将向您显示添加,删除和更新的行。请注意,这些可能会污染到单个结果集中。

select b.*, 'added'
from tableb b
   left outer join tablea a on b.IssueID = a.IssueID
where a.IssueID is null

select a.*, 'deleted'
from tablea a
    left outer join tableb b on a.IssueID = b.IssueID
where b.IssueID is null

select a.*, 'updated'
from tablea a
    join tableb b on a.IssueID = b.IssueID
where a.Status <> b.Status or a.Who <> b.Who


对于后者,请注意,如果需要处理空值,我认为您需要调整where子句。

如果表很大且正在进行中,则应考虑在连接列上添加索引。

07-24 15:23