Aaron Bertrand has a post called Use Caution with SQL Server’s MERGE Statement. It’s a pretty thorough compilation of all the problems and defects associated with the MERGE statement that folks have reported in the past. But it’s been a few years since that post and in the spirit of giving Microsoft the benefit of the doubt, I revisited each of the issues Aaron brought up.
Some of the items can be dismissed based on circumstances. I noticed that:
– Some of the issues are fixed in recent versions (2016+).
– Some of the issues that have been marked as won’t fix have been fixed anyway (the repro script associated with the issue no longer fails).
– Some of the items are complaints about confusing documentation.
– Some are complaints are about issues that are not limited to the MERGE statement (e.g. concurrency and constraint checks).
Spoilers: some + some + some + some is still a lot less than all. Read the whole thing.