Hi @Arul P ,
Thanks for using Microsoft Q&A!!
If I understand you correctly, you are trying to use Copy activity with Upsert, however, the activity is inserting a new record if NULL comes against few of the key column values.
I have tested this and I could see the same behavior and it looks like NULL is being treated as a new record.
I am checking internally with the products team on this and get back to as soon as I have any updates.
I have not tested this but you can try writing using custom logic and apply additional processing before inserting the source data into the destination table by invoking a stored procedure to do the upsert task instead of using the built-in Upsert. Please refer to the Invoke a stored procedure from a SQL sink for details.
Please let me know if you have any questions.