2016-09-14 13 views
0

データベースとしてSAP HANAを使用しています。データベーステーブル内容の比較

2つのテーブルの内容が同じであるかどうかを比較するにはどうすればよいですか?

私はすでにSQLを使用して、プライマリキーの比較をした:

select COUNT (*) from Schema.table1; 
select COUNT (*) from Schema.table2; 
select COUNT (*) 
    from Schema.table1 p 
    join schema.table2 r 
    on p.keyPart1 = r.keyPart1 
    and p.keyPart2 = r.keyPart2 
    and p.keyPart3 = r.keypart3; 

だから私は両方のテーブルの行を比較し、参加を。すべての行数は同じです。

しかし、すべての行の内容がまったく同じかどうかはまだ分かりません。非キー列の1つ以上のセルが逸脱している可能性があります。

すべての列をjoinステートメントに入れることを考えました。しかし、それは正しく感じられませんでした。

答えて

1

あなたは、これは集合演算に基づいて、意味的に正しい答えであるexcept

SELECT * FROM A 
EXCEPT 
SELECT * FROM B; 

SELECT * FROM B 
EXCEPT 
SELECT * FROM A; 
+0

を使用する場合があります。実用的な目的のためには、特に大規模なデータセットでは、これはリソースを大量に消費する方法です。 また、これらのクエリを実行して実際に一致しないレコードを見つけると、どのテーブルから来るのか分かりません。 SAP Solution Manager(追加SAP製品)は、ブロックワイズレコードセットの比較を高性能に実行し、差異の発生場所を把握する機能を提供します。 –

関連する問題