0

2 つのテーブルを同期するためにユーザー マージ SQL ステートメントが必要なシナリオがあります。テーブル A とテーブル B の 2 つのテーブルがあるとします。テーブル A の 1 つの追加列を除いて、スキーマは同じです。その追加列は、テーブル B で挿入/更新する準備ができているレコードを示すフラグです。そのフラグ列は IsReady です。true または False のいずれかになります。

Merge ステートメントで Isready=True を使用できますか、または一時テーブルが必要で、すべてのレコードをテーブル A から IsReady=True の一時テーブルに移動してから、TempTable とテーブル B で Merge SQL を使用できますか?

4

2 に答える 2

1

はい、マージ条件でその列を使用できます。

merge tableB targetTable
using tableA sourceTable
on sourceTable.IsReady = 1 and [any other condition]
when not matched then
insert ...
when matched and [...] then
update ...
于 2012-12-17T13:46:46.693 に答える
0

これはあなたを助けるかもしれません、

merge into tableB 
using tableA  
on tableB.IsReady=true
when not matched then
insert (tableB.field1,tableB.field2..)
values (tableA.field1,tableA.field2..);
commit;
于 2012-12-17T14:27:12.633 に答える