2010-03-18 99 views
0

当您需要比较两个表以查看差异时,有没有使用任何工具或快捷方式,或者是否手动编写SQL以比较两个表?比较Teradata中两个表格内容的最佳方法?

基本上像红门SQL数据的产品的核心功能比较(我的表通常总是匹配模式)。

背景:以我SQL Server环境中,我创建它连接上的指定键列中的两个表的存储过程,其检查的两个表/视图中的元数据,创建一个查询(如动态SQL),并且比较数据在比较列中,报告关键差异和数据差异。该查询可以打印并修改/复制,或者按原样执行。不幸的是,我们不允许在我们的Teradata环境中创建存储过程。

回答

1

听起来像一个数据分析工具,如Talend's Open Profiler将使该点的最有意义的。

你可以写建立类似于您的SQL Server存储过程的查询,然后导出动态生成的SQL一个BTEQ语句。然后你可以在你的BTEQ内部运行。它可能会很麻烦,但有足够的决心,你可能会嘲笑一些东西。

1

我不知道这是否是你正在寻找正确的答案。

sel * from database_name1.table_name1 
minus 
sel * from database_name2.table_name2; 

你可以通过选择特定的列来做同样的事情。这基本上会给table1中table2中不存在的行。

如果你不是在找这种类型的答案,请忽略这一点,并继续进行。你

也可以选择像下面。

select 
table1.keycol1, 
table2.keycol2, 
(table1.factcol1 - table2.factcol2) as diff 
from table1 
inner join 
table2 
on table1.keycol1 = table2.keycol1 
and table1.keycol2 = table2.keycol2 
where diff <> 0 

这只是一个可以给出一个想法的分析。请忽略任何语法和程序错误。 希望这有助于。

+0

谢谢 - 这是类似于我们在SQL Server上生成的工具的代码。 – 2010-05-06 15:23:19