1 つ以上のテーブルのデータを参照データベースのデータと比較して同期する
ソース データベースとターゲット データベースのデータを比較し、比較するテーブルを指定できます。データを確認し、同期する変更を決定することができます。その後、ターゲットを更新してデータベースを同期するか、Transact-SQL エディターまたはファイルに更新スクリプトをエクスポートすることができます。
たとえば、データベースを同期し、運用データのコピーでステージング サーバーを更新できます。また、1 つ以上のテーブルを同期し、別のデータベースからの参照データをそのテーブルに設定することもできます。さらに、別の形式の検証として、テストを実行する前と後でデータを比較することもできます。
2 つのデータベースのデータを比較することはできますが、比較対象にデータベース プロジェクト ファイルまたは .dacpac を指定することはできません。これにはデータが含まれていないためです。
このセクションのトピックは次のとおりです。
必要条件
テーブルまたはビューのデータを比較する場合、ソース データベースのテーブルまたはビューは、ターゲット データベースのテーブルまたはビューといくつかの属性を共有している必要があります。次の条件を満たしていないテーブルとビューは比較されないため、新しいデータの比較ウィザードの 2 ページ目に表示されません。
テーブルで、互換性のあるデータ型が設定された一致する列名が使用されていること。
テーブル、ビュー、および所有者の名前では大文字と小文字が区別されます。
テーブルの主キー、一意のインデックス、または UNIQUE 制約が同じであること。
ビューの一意のクラスター化インデックスが同じであること。
比較するテーブルとビューの名前が同じであること。
各オブジェクトには、対応する他のオブジェクトを決定するキーまたはインデックスがあります。ただし、各テーブルまたはビューには、複数の主キー、一意のインデックス、または UNIQUE 制約を設定できます。そのため、使用するキー、インデックス、または制約を指定できます。
一般的なタスク
このセクションでは、このシナリオをサポートする一般的なタスクの説明を示します。
データの比較方法を制御するオプションを設定する: データを比較する場合、安全に ID 列を無視し、トリガーを無効にして、外部キーを無効にすることができます。また、更新スクリプトから主キー、インデックス、および UNIQUE 制約を削除することもできます。
テーブルのデータを比較し、必要に応じてターゲットをソースと一致するように更新する: 比較するソース データベースとターゲット データベースを指定して比較を実行した後、[データ比較] ウィンドウで結果を確認できます。差異の詳細だけでなく、データの同期に使用できる更新スクリプトも確認できます。2 つのデータベース間の差異を特定したら、それぞれの差異に対するアクションを指定できます。その後、ターゲットを更新するか、Transact-SQL エディターまたはファイルに更新スクリプトをエクスポートすることができます。スクリプトをエクスポートすると、変更を適用する前にすべてのユーザーが確認できるようにすることができます。
比較結果について
次の表では、[データ比較] ウィンドウの 5 つの列について説明します。
列 |
説明 |
---|---|
オブジェクト |
テーブルまたはビューの名前、および更新を書き込む場合または更新スクリプトをエクスポートする場合にターゲットを同期する必要があるかどうかを示すチェック ボックスが表示されます。このチェック ボックスは、データが含まれていないテーブルまたはビューでは使用できません。 |
異なるレコード |
ターゲットのレコードのうち、キーがソースと同じで、データがソースと異なるレコードの数が表示されます。かっこ内には、更新を書き込む場合または更新スクリプトをエクスポートする場合に更新対象としてマークされているレコードの数が示されます。 |
ソース内のみ |
ソースのレコードのうち、ターゲットに存在しないレコードの数が表示されます。かっこ内には、更新を書き込む場合または更新スクリプトをエクスポートする場合に追加対象としてマークされているレコードの数が示されます。 |
ターゲット内のみ |
ターゲットのレコードのうち、ソースに存在しないレコードの数が表示されます。かっこ内には、更新を書き込む場合または更新スクリプトをエクスポートする場合に削除対象としてマークされているレコードの数が示されます。 |
一致するレコード |
ターゲットのレコードのうち、キーとデータがソースと同じレコードの数が表示されます。これらのレコードは、更新を書き込むときも更新スクリプトをエクスポートするときも更新されません。 |
テーブルおよびビューの詳細
[データ比較] ウィンドウでテーブルまたはビューをクリックすると、詳細ペインには、そのテーブルまたはビューに含まれているすべての行が表示されます。詳細ペインの各タブには、異なるカテゴリ (異なるレコード、ソース内のみ、ターゲット内のみ、一致するレコード) が表示されます。行ごとに、対応するチェック ボックスをオンまたはオフにして、更新スクリプトにその変更を含めるかどうかを示すことができます。