0

2 つの異なる DB (1 つはローカル、もう 1 つはリモート) に 2 つの同一のテーブルがあります。両方とも、追加された時期を指定するDatetime( またはDatetime2その他のもの、私はまだ変更できます ) 列を持っています。私が望むのは、まだ持ち込まれていないレコードをリモート テーブルからローカル テーブルに取得することです。

このために、ローカルテーブルから最大値を取得してから、条件を設定しようとしましたがWHERE remoteTable.CreateTime > maxLocalValue、これが境界上の一部のレコードを上書きするように見える理由がわかりません。これを行うためのより良い方法はありますか? 秒または分レベルで?

4

1 に答える 1

0

どの値がローカル テーブルに既に追加されているかがわかっているため、ローカル テーブルにないリモート テーブルの値のみを追加します。local_table がローカル テーブルを表し、remote_table がリモート テーブルを表し、rcd_1 が DATE 型を表す両方のテーブルの列であるとします。

INSERT INTO local_table (col_1,.....(how evermany columns you need), rcd_1)
SELECT rcd_1 FROM remote_table 
where remote_table.rcd_1 <> local_table.rcd_1;

あなたが質問を説明した方法は、新しい日付のみがリモートからローカルに追加されることを示唆しているため、これが当てはまる限り、望ましい結果が得られるはずです。

于 2013-07-23T18:56:27.680 に答える