Merge SQL With Condition

I have a Scenario where i need to User Merge SQL statement to Synchronize two Tables. Let's suppose i have two tables Table A and Table B. Schema is same with the exception of one Extra Column in Table A. That Extra column is a flag that tells me which records are ready to be inserted/updated in Table B. Lets say that flag column is IsReady. It will be either true or False.

Can i use Isready=True in Merge Statement or I need a Temp table to move all records from Table A to Temp Table where IsReady=True and then use Merge SQL on TempTable and Table B???

Upvotes: 0

Views: 303

Answers (2)

Mariappan Subramanian
Mariappan Subramanian

Reputation: 10063

This may help you,

merge into tableB 
using tableA  
on tableB.IsReady=true
when not matched then
insert (tableB.field1,tableB.field2..)
values (tableA.field1,tableA.field2..);
commit;

Upvotes: 0

Dominic Goulet
Dominic Goulet

Reputation: 8113

Yes, you can use that column in the merge condition.

merge tableB targetTable
using tableA sourceTable
on sourceTable.IsReady = 1 and [any other condition]
when not matched then
insert ...
when matched and [...] then
update ...

Upvotes: 1

Related Questions