【问题标题】:Comparing the data of two tables in the same database in sqlserver在sql server中比较同一个数据库中两个表的数据
【发布时间】:2013-07-18 13:45:36
【问题描述】:

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

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

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

任何人都可以帮助如何做到这一点。 如何使用redgate(Tool)比较两个表数据和一个数据库中的数据?

【问题讨论】:

  • 给出一些示例表和查询,你曾经做过的事情......
  • 1)weblogs.sqlteam.com/jeffs/archive/2004/11/10/2737.aspx 2)SELECT col1, col2, col3 FROM (SELECT * FROM tableA UNION ALL select * from tableB) data GROUP BY col1, col2, col3 HAVING count(*)!=2
  • 当我尝试这个时,它显示了两个数据行,但我不需要我只想比较数据将这些额外的行保存到新表中 select * from tableA minus select * from tableB
  • 谁能帮帮我这对我来说很紧急,任何人都可以推荐任何用于comapare的工具

标签: sql sql-server redgate


【解决方案1】:

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

数据比较曾经使用 UNION ALL,但它正在填满 tempdb,如果表的行数很高,就会发生这种情况。它现在使用数据缓存完成本地硬盘上的所有“连接”。

【讨论】:

  • 非常感谢您的回复,请问您有这个怎么做的教程或视频吗?你问我是因为在我知道这个之前我对这个工具没有任何想法
【解决方案2】:

我觉得你可以在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/

希望对你有帮助

【讨论】:

  • 是的,谢谢,我已经尝试过了,但是我的数据是相同的,但是列不同,例如 infoID,EmpID,就像我执行查询时显示错误一样。
  • 您能否分享您尝试过的确切查询,以便我们为您提供帮助
  • 列不同如何比较?
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 2011-05-29
  • 2011-11-28
  • 1970-01-01
相关资源
最近更新 更多