0

2 つのテーブルを比較して違いを確認する必要がある場合、使用するツールやショートカットはありますか? または、2 つのテーブルを比較するために SQL をハンドコーディングしますか?

基本的に、Red Gate SQL Data Compare のような製品のコア機能 (通常、テーブルのスキーマは常に一致します)。

背景: SQL Server 環境で、2 つのテーブル/ビューのメタデータを検査し、指定されたキー列で 2 つのテーブルを結合するクエリを (動的 SQL として) 作成し、比較列のデータを比較するストアド プロシージャを作成しました。 、主な相違点とデータの相違点を報告します。クエリは、印刷して変更/コピーするか、そのまま実行することができます。残念ながら、Teradata 環境でストアド プロシージャを作成することは許可されていません。

4

2 に答える 2

1

TalendのOpenProfilerなどのデータプロファイリングツールがその時点で最も理にかなっているように聞こえます。

SQL Serverストアドプロシージャと同様のクエリをビルドするBTEQステートメントを記述してから、動的にビルドされたSQLをエクスポートできます。次に、BTEQ内でそれを実行できます。面倒になるかもしれませんが、十分な決意があれば、おそらく何かをモックアップすることができます。

于 2010-03-18T19:47:02.713 に答える
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

これは、アイデアを与えることができる単なる分析でした。構文上およびプログラム上のエラーは無視してください。お役に立てれば。

于 2010-05-06T13:37:52.027 に答える