Share via


データベースのデータ比較の概要

データベースのスキーマを比較する他に、同じスキーマを使用している 2 つのデータベース間のデータを比較することもできます。ソース データベースの一部またはすべてのテーブルのデータに一致するようにターゲット データベースを更新できます。このプロセスを使用して、ソース データベースと新しく配置した空のデータベースを比較し、ソースのデータをターゲット データベースに書き込むことができます。このプロセスでは、最初にデータベースに接続し、ソース データベースとターゲット データベースを比較し、ターゲットのデータを更新します。

たとえば、データベース管理者が、チームのデータベース プロジェクトのライフ サイクルを管理するとします。データベース管理者の作業には、プレリリース版のテスト データベースとパフォーマンス テスト用データベースの両方を準備することが含まれます。データベース管理者は、プロジェクトの期間全体をとおして、この 2 つのデータベースを定期的に同期する必要があります。このタスクを実行するために、データベース管理者は両方のデータベースへの接続を確立して、プレリリース版のデータベースをソースとして設定し、Visual Studio Team System Database Edition を使用してデータを比較します。最後に、データベース管理者は、必要に応じてターゲットのパフォーマンス テスト用データベースを更新します。

データの比較方法の詳細については、以下のトピックを参照してください。

このセクションでは、Database Edition を使用してデータを比較する方法のさまざまな側面について説明します。

データ比較の要件

Database Edition は、テーブルとビューのデータを比較します。比較するソース データベースとターゲット データベースのテーブルまたはビューは、次のような共通の属性を持っている必要があります。

  • テーブルおよびビューは、名前および所有者が同じで、スキーマ (構造) が一致している必要があります。

    テーブル、ビュー、および所有者の名前は、大文字と小文字が区別されます。データベースのスキーマの詳細については、「方法 : 2 つのデータベースのスキーマを比較する」を参照してください。

  • テーブルは、主キー、一意のインデックス、または一意の制約が同じである必要があります。

  • ビューは、一意のクラスタ化インデックスが同じである必要があります。

  • テーブルとビューは、名前が同じである場合にのみ比較できます。

    Aa833252.alert_note(ja-jp,VS.90).gifメモ :

    これらの基準を満たしていないテーブルとビューは比較されず、新しいデータの比較ウィザードの 2 ページ目に表示されません。

Database Edition は、キーまたはインデックスに基づいてオブジェクトの一致を確認します。ターゲット データベースのテーブルまたはビューの主キー、一意のインデックス、または一意の制約に一致するものがソース データベースのテーブルまたはビューに複数存在する場合、どれを比較に使用するかを指定できます。この指定は、新しいデータの比較ウィザードの 2 ページ目で行います。

2 つのデータベースのデータを比較した後で、結果を表示し、ソースのデータをターゲットに反映させることができます。詳細については、「方法 : データの相違点を表示する」を参照してください。

データ比較の制御

データの比較プロセスは、次の方法で制御できます。

  • データ比較および結果として生成される更新スクリプトは、[オプション] ダイアログ ボックスで構成できます。詳細については、「方法 : データベースのデータを比較するオプションを設定する」を参照してください。

  • 比較するテーブルまたはビューを指定できます。データ比較ウィザードの最初のページで、比較するデータベースを指定すると、そのデータベースに接続されます。どのレコードを比較結果に含めるかを設定することもできます。2 ページ目で、比較するデータベース内のテーブルを部分的に指定できます。両方のデータベースで主キー、一意のインデックス、または一意の制約が同じであるテーブル、または両方のデータベースで一意のクラスタ化インデックスが同じであるビューのみが表示されます。

  • 比較は、実行中であれば停止できます。比較を停止すると、その時点までに比較が終わっているテーブルとビューについての結果が [データ比較] ウィンドウに表示されます。停止した時点から比較を再開することはできませんが、比較を更新することはできます。この場合は、比較が最初からやり直されます。

詳細については、「方法 : 2 つのデータベースのデータを比較する」を参照してください。

データの比較結果の表示

[データ比較] ウィンドウは、Visual Studio のメインの編集領域になります。このウィンドウには、両方のデータベースのテーブルとビューについての比較結果が表示されます。次の表に示すように、比較したそれぞれのオブジェクトについて、結果および提案された更新アクションが表示されます。

結果の型

説明

同一のレコード

ソース オブジェクトとターゲット オブジェクトのすべてのレコードが同一です。

異なるレコード

ソース オブジェクトとターゲット オブジェクトの 1 つ以上のレコードが異なります。

ソースのみ

ソース オブジェクトには存在するが、ターゲット オブジェクトには存在しないレコードが 1 つ以上あります。

ターゲットのみ

ターゲット オブジェクトには存在するが、ソースには存在しないレコードが 1 つ以上あります。

不要なカテゴリをフィルタで排除して、結果の一部を表示できます。たとえば、2 つのデータベース間で異なるレコードのみ、またはターゲットには存在するがソースには存在しないレコードのみを表示できます。レコード ビュー ペインには、結果の種類別に特定のデータベース オブジェクトについての結果が表示されます。詳細については、「方法 : データの相違点を表示する」を参照してください。

比較が終わると、[データ スクリプトのプレビュー] ウィンドウにデータ操作言語 (DML: Data Manipulation Language) スクリプトが表示されます。このスクリプトを実行すると、ターゲット データベースのレコードを更新できます。

比較結果の更新

比較を開始する前に、比較を構成するために、目的のデータベースに接続し、必要に応じて比較するデータベース内の特定のオブジェクトを選択します。同じ基準でデータベースを比較し直す場合は、[最新の情報に更新] をクリックします。これにより、データベースの現在の状態が表示され、前回比較時以降に変更されたかどうかがわかります。

前回比較時以降にソース データベース、ターゲット データベース、またはその両方にテーブルが追加された場合、追加されたテーブルは、新しいデータ比較を開始しない限り表示されません。既存のセッションを最新の状態に更新しても、これらの変更は認識されません。

ターゲット データベースのデータの更新

データを比較した後で、ソース データベースのデータでターゲット データベースのデータを更新できます。データベースのすべてのオブジェクト、選択したオブジェクトのみ、または選択したオブジェクト内の選択したレコードのみを更新できます。

[オブジェクト] 列のチェック ボックスをオンにすると、[更新の書き込み] をクリックした場合に、該当するオブジェクトが更新されます。オブジェクトのレコードをターゲット データベースに書き込まない場合は、オブジェクトのチェック ボックスをオフにします。

更新するオブジェクトおよびレコードを指定する方法の詳細については、「方法 : データベースのデータを同期する」を参照してください。

参照

その他の技術情報

データベース スキーマ比較の概要