Doing Upserts with the Help of MERGE

Doing Upserts with the Help of MERGE

There will be times that you encounter a situation where you have to update a row, if it exists, or create a new row if the certain data is not already present. There will also be times when you do not want to Insert any duplicate information into a table. All of these scenarios can be implemented with a well-structured SQL MERGE statement, such as the following:

MERGE [Table] WITH (HOLDLOCK) AS tUSING (VALUES ( @ID)) AS s (ID)ON s.ID = t.IDWHEN NOT MATCHED BY TARGET THENINSERT ([Field1],[Field2],[Field3])VALUES (@ValueForField1,@valueForField2,@ValueForField3); 

I checked whether or not an ID already exists inside the table named TABLE. If it doesn’t exist, it will INSERT a new row, otherwise it won’t do anything.


Share the Post: