SQLServerにて同一項目のテーブルが正しいか
比較する場合、いくつかの方法があります。
1つ目は、CSVに保存し、テキスト比較する方法。
両方のテーブルを同じソート順にてCSVに落とし、ファイル比較を行う。
DFというフリーソフトが便利でいいですね。
http://www.vector.co.jp/vpack/browse/person/an005630.html
違いがあれば色が変わって表示されます。
2つ目は、テーブルをキー項目で連結しチェックする方法。
SELECT A.項目 FROM テーブルA A |
但し、テーブルAに存在しないデータは抽出されません。
テーブルAに存在しないデータを抽出するには
SELECT B.項目 FROM テーブルB B |
とします。
3つ目は、テーブルをEXISTSで抽出する方法。
これでテーブルAにあるがテーブルBにないレコードをチェックできます。
SELECT * FROM テーブルA A |
4つ目は、テーブルをUNIONで連結する方法。
SELECT COUNT(*) FROM ( |
このSQLにて重複レコードがまとめられますので
テーブルA件数 = テーブルB件数 = 結果件数
となればすべて等しいと判断できます。
テストの参考にさせていただきました。
ありがとうございました。
ちなみに下記の記事ですが、UNION ALLだと重複行がまとめられず
全件表示されました。
ALLを抜いたところうまくいきました。
指摘が重複していましたら申し訳ございません。
>4つ目は、テーブルをUNIONで連結する方法。
>SELECT COUNT(*) FROM (
> SELECT * FROM テーブルA
> UNION ALL
> SELECT * FROM テーブルB
>)
>このSQLにて重複レコードがまとめられますので
>テーブルA件数 = テーブルB件数 = 結果件数
>となればすべて等しいと判断できます。
少しでも参考になり良かったです。
さらにご指摘ありがとうございます。
早速修正しました。