Sql server 2008 比较两个表的值并列出不同的行

Sql server 2008 比较两个表的值并列出不同的行,sql-server-2008,Sql Server 2008,这个问题与我们的观点相同,只是略有不同 我有两个表,TableA和TableB,其中TableB实际上只是TableA的一个备份,唯一真正的区别是TableB有一个“ACTION”列,指示在TableA中采取的操作。现在我忽略了这个专栏(虽然理想情况下,我希望它附加到最终结果中,所以请随意对此提出建议:D) 我想比较这两个表,并从每个表中得到不同的行。我使用这个示例创建了一个查询,但是,它只返回TableB中不同的行 推荐的方法是什么 注意:代码与第二个链接中的示例完全相同,因此我不会在这里发布

这个问题与我们的观点相同,只是略有不同

我有两个表,TableA和TableB,其中TableB实际上只是TableA的一个备份,唯一真正的区别是TableB有一个“ACTION”列,指示在TableA中采取的操作。现在我忽略了这个专栏(虽然理想情况下,我希望它附加到最终结果中,所以请随意对此提出建议:D)

我想比较这两个表,并从每个表中得到不同的行。我使用这个示例创建了一个查询,但是,它只返回TableB中不同的行

推荐的方法是什么


注意:代码与第二个链接中的示例完全相同,因此我不会在这里发布任何代码

这将为您提供A中不在B中的所有内容

select * from tableA
Except
select * from tableB
反之亦然

select * from tableB
Except
select * from tableA
编辑:以这种方式连接:

(select * from tableA
Except
select * from tableB)
union all
(select * from tableB
Except
select * from tableA)

您确定表A中有不在表B中的行吗?您能提供一组简化的数据来说明问题吗?表a中不应该有任何不在表B中的行,但这是可以接受的。我现在唯一想做的就是比较TableA和TableB中的行。我按原样进行了尝试,不幸的是,它为我在MS SQL Server Mgt Studio中列出了两个不同的视图。我对SQL不够熟悉,无法将这两个结果合并在一起。虽然我有一种感觉,这将是可笑的简单。