4

同一のスキーマを持つことがわかっている2つのMSSQLデータベースがある場合、それらにデータの同一のコピーが含まれているかどうかをどのように判断する必要がありますか?

私はMSSQLServer 2008 Expressを使用しており、ADO.NET APIを使用して.NetフレームワークのC#およびv2.0でコーディングしています。2つのデータベースインスタンスは両方とも同じSQLサーバー上にあります。

背景:データベースからファイルのセットにデータをエクスポートし、それらのファイルから(データベースの別のコピーに)データを再インポートするソフトウェアを作成しました。ラウンドトリップ中にデータが失われたかどうか(具体的には、最初のエクスポート中にデータが失われたか、残されたかどうか)をテストしたいと思います。

大まかな方法​​はSELECT *、各データベースのすべてのテーブルから取得し、クライアント側のコードを使用して選択したレコードセットを比較することです。クライアント側のコードが少なくて済む別の方法はありますか?

データベースのバックアップと復元、およびデータの選択と挿入に関するドキュメントを見つけましたが、ラウンドトリップが完全に成功したことを確認/証明する方法、つまり、 2つのデータベースのテーブルには、等しいデータが含まれています。

4

3 に答える 3

1

最初のステップは、レコード数を比較することです。あなたは迅速にこれを行うことができます

select count('x') from TAbleY

すべてのテーブルに対してこれを行う必要があります。

テーブル内のデータを比較するには、CHECKSUM関数を使用します。

于 2009-05-20T01:10:12.863 に答える
1

RedGateのSQLデータ比較がその答えかもしれません。

于 2009-05-20T01:11:09.803 に答える
1

Redgate SQLDATACOMPAREを使用できます1>データベースの各テーブルのデータの総数を通知します2>実行することでデータを同じにすることができるようにデータの違いを示すスクリプトを生成します。3>スキーマがSQLCOMPAREによって異なるかどうかが表示されます。4>2つのデータベースを同期することもできる多くの機能が役立ちます。

これに加えて、Visual Studio 2012には、データを比較するオプションがあります。これも試すことができます。

于 2013-03-02T05:57:40.967 に答える