方法 : データベースのデータを同期する
2 つのデータベースのデータを比較した後で、ソースに一致するようにターゲットの全体または一部を更新して、2 つのデータベースを同期できます。 データを比較できるデータベース オブジェクトは、テーブルとビューの 2 種類です。
データベースのデータの同期
[更新の書き込み] コマンドを使ってターゲットのデータを更新するには
2 つのデータベースのデータを比較します。 詳細については、「方法 : 2 つのデータベースのデータを比較する」を参照してください。
比較が終了すると、比較したオブジェクトについての結果が [データ比較] ウィンドウに表示されます。 [異なるレコード] 列、[ソースのみ] 列、[ターゲットのみ] 列、[同一のレコード] 列の 4 つに、同一ではなかったオブジェクトについての情報が表示されます。 これらの列には、該当する各オブジェクトについて、異なると認識されたレコードの件数、および更新操作を実行した場合に変更されるレコードの件数が表示されます。 この 2 つの数値は最初は一致しますが、更新するオブジェクトを手順 4. で変更できます。
詳細については、「1 つ以上のテーブル内のデータと参照データベース内のデータを比較および同期する」を参照してください。
[データ比較] ウィンドウの表で任意の行をクリックします。
詳細ペインに、クリックしたデータベース オブジェクトのレコードに関する結果が表示されます。 レコードは状態別にタブでグループ化されており、このタブを使ってソースからターゲットに反映させるデータを指定できます。
詳細ペインで、名前にゼロ (0) 以外の数が含まれているタブをクリックします。
"ターゲットのみ" テーブルの [更新] 列のチェック ボックスを使って、行を選択できます。 既定では、各チェック ボックスはオンになっています。
ターゲットのレコードのうち、ソースのデータで更新しないものについては、対応するチェック ボックスをオフにします。
チェック ボックスをオフにすると、更新するレコードの数が減り、これを反映して表示が変更されます。この数は、詳細ペインのステータス ライン、および手順 1. に記載したようにメインの結果ペインの対応する列に表示されます。
(省略可能) [エディタにエクスポート] をクリックします。
Transact-SQL (T-SQL) エディタのウィンドウが開き、ターゲットの更新に使用するデータ操作言語 (DML: Data Manipulation Language) スクリプトが表示されます。
異なるレコード、不足しているレコード、または新しいレコードを同期するために、[更新の書き込み] をクリックします。
メモ : ターゲット データベースを更新している途中で [ターゲットへの書き込みの停止] をクリックすると、操作をキャンセルできます。
選択されたレコードのターゲットのデータが、対応するソースのレコードのデータで更新されます。
メモ : インデックス付きビューを更新する場合、1 つのテーブルに重複するキーが挿入されるような更新の書き込み操作は失敗します。
T-SQL スクリプトを使ってターゲットのデータを更新するには
2 つのデータベースのデータを比較します。 詳細については、「方法 : 2 つのデータベースのデータを比較する」を参照してください。
比較が終了すると、比較したオブジェクトが [データ比較] ウィンドウに表示されます。 詳細については、「1 つ以上のテーブル内のデータと参照データベース内のデータを比較および同期する」を参照してください。
(省略可能) 前の手順の説明に従い、詳細ペインで、更新対象に含めないターゲットのレコードのチェック ボックスをオフにします。
[エディタにエクスポート] をクリックします。
新しいウィンドウが開き、ソースのデータに一致するようにターゲットのデータを変更するための T-SQL スクリプトが表示されます。 この新しいウィンドウには、Server.Database - DataUpdate_Database _1.sql というような名前が付いています。
このスクリプトは、詳細ペインで行った変更を反映しています。 たとえば、ある行のチェック ボックスを [dbo].[Shippers] テーブルの [ターゲットのみ] ページでオフにしたとします。 その場合、その行は更新されません。
(省略可能) このスクリプトを [Server.Database - DataUpdate_Database _1.sql] ウィンドウで編集します。
(省略可能、ただし推奨) ターゲット データベースをバックアップします。
[SQL の実行] をクリックするか、または F5 キーを押して、ターゲット データベースを更新します。
重要 : 既定では、更新は 1 つのトランザクションのスコープ内で行われます。 エラーが発生した場合は、更新全体をロールバックできます。 この動作は変更できます。 詳細については、「方法 : データベースのデータを比較するオプションを設定する」を参照してください。
選択されたレコードのターゲットのデータが、対応するソースのレコードのデータで更新されます。