0

同じ SQL サーバー データベース (DB1 と DB2) の 2 つのコピーがあります。次のことを行う最善の方法は何ですか:

DB2 のいくつかのテーブルのデータを DB1 と同じになるように更新し (つまり、DB1 がソースであり、DB2 が宛先です)、DB1 の他のいくつかのテーブルのデータを DB2 と同じになるように更新します (つまり、DB2 がソースです)そしてDB1が宛先です)

c#プログラムを使用してこれを作成するには? それを行うための最善の魂で私を助けてくれることを願っています。

プログラムと2つのコピーの間に同時に接続はなく、テーブルにはID列に多くの関係があることに注意してください

ありがとう :)

4

1 に答える 1

1

MERGE私の提案は、リンク サーバーをセットアップしてから、 SQL コマンドを利用するストアド プロシージャを作成することです。

これは半疑似コードの例であることに注意してください

 MERGE DB2 AS target
    USING DB1 AS source
    ON <Primary Keys>
    WHEN MATCHED THEN 
        UPDATE SET Key = source.Value
    WHEN NOT MATCHED THEN   
        INSERT (<Columns>)
        VALUES (source.values)
        OUTPUT deleted.*, $action, inserted.* INTO #MyTempTable;

SqlConnection/SqlCommand次に、ストアド プロシージャを作成して呼び出すことができます。このコードは、Windows サービスまたは通常の .Net イベント、つまりボタン クリック、例として OnLoad で最終的にホストできます。

于 2013-08-13T12:44:18.257 に答える