当您需要比较两个表以了解其差异时,您是否使用了任何工具或快捷方式,或者是否手动编写SQL代码来比较这两个表?
基本上,Red Gate这样的产品的核心特性是SQL数据比较(我的表的模式通常总是匹配的)。
背景:在我的SQL Server环境中,我创建了一个存储过程来检查这两个表/视图的元数据,创建一个查询(作为动态sql)来连接指定键列上的两个表,并比较比较列中的数据,报告键差异和数据差异。查询既可以打印并修改/复制,也可以按原样执行。不幸的是,我们不允许在Teradata环境中创建存储过程。
发布于 2010-03-19 03:47:03
听起来像是像Talend's Open Profiler这样的数据分析工具在这一点上最有意义。
您可以编写一条BTEQ语句来生成查询,该语句与SQL Server存储过程类似,然后导出动态生成的SQL。然后,你可以在你的BTEQ中运行它。它可能会变得很麻烦,但如果你有足够的决心,你可能会模仿一些东西。
发布于 2010-05-06 21:37:52
我不知道这是不是你正在寻找的正确答案。
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这只是一个分析,可以给出一个想法。请忽略任何语法和程序错误。希望这能有所帮助。
https://stackoverflow.com/questions/2472147
复制相似问题