比较sqlserver中同一数据库中两个表的数据

时间:2013-07-19 09:59:06

标签: sql sql-server redgate

我需要将两个表数据与一个数据库进行比较。使用某些列表格来匹配数据。

将这些额外的行数据存储到另一个名为“relationaldata”的表中。 当我被搜查时,找到了一些解决方案。

但这对我不起作用 http://weblogs.sqlteam.com/jeffs/archive/2004/11/10/2737.aspx

任何人都可以帮助如何做到这一点。 如何使用redgate(工具)将两个表数据与一个数据库进行比较?

2 个答案:

答案 0 :(得分:3)

Red Gate SQL Data Compare允许您将同一数据库中的两个表映射在一起,前提是这些列是兼容的数据类型。您只需将相同的数据库放在源和目标中,然后转到“对象映射”选项卡,取消映射这两个表,并将它们映射到一起。

数据比较用于使用UNION ALL,但它正在填充tempdb,如果表具有高行数,将会发生这种情况。它现在使用数据缓存在本地硬盘上执行所有“连接”。

答案 1 :(得分:1)

我认为你可以在sql server

中使用 Except 子句
INSERT INTO tableC
(
   Col1
 , col2
 , col3
)

select Col1,col2,col3from tableA 
Except 
select  Col1,col2,col3 from tableB

请参阅更多信息

http://blog.sqlauthority.com/2008/08/07/sql-server-except-clause-in-sql-server-is-similar-to-minus-clause-in-oracle/

希望这有帮助