With the "upsert option" , should I expect to see "0" as "Rows Written" in a copy activity result summary?
My situation is this: The source and sink table columns are not exactly the same but the Key columns to tell it how to know the write behavior are correct.
I have tested and made sure that it does actually do insert or update based on the data I give to it BUT what I don't understand is if I make ZERO changes and just keep running the pipeline , why does it not show "zero" in the Rows Written summary?
CodePudding user response:
The main reason why rowsWritten is shown as 0 even when the source and destination have same data is:
Upsertinserts data when a key column value is absent in target table and updates the values of other rows whenever the key column is found in target table.- Hence, it is modifying all records irrespective of the changes in data. As in SQL
Merge, there is no way to tell copy activity that if an entire row already exists in target table, then ignore that case. - So, even when
key_columnmatches, it is going to update the values for rest of the columns and hence counted as row written. The following is an example of 2 cases
The rows of source and sink are same:
- The rows present:
id,gname
1,Ana
2,Ceb
3,Topias
4,Jerax
6,Miracle

When inserting completely new rows:
- The rows present in source are (where sink data is as above):
id,gname
8,Sumail
9,ATF

