Everywhere I am reading, when a merge statement happens, it will fire the triggers (INSERT, UPDATE, DELETE) in no particular order. I have a basic merge:

MERGE dbo.Users WITH(HOLDLOCK) as tgt
USING #Users as src
ON tgt.ID = src.ID
OUTPUT INSERTED.ID, src.UserID into #Results;

However, I have an insert trigger on Users but nothing ever gets run from the trigger perspective. Follow-up update statements do get run and I see the results of those trigger executions, just not the inserts from the merge.

Is there anything I can do about that? I'm surprised it's not working when it's documented that others do get that functionality to work...

  • 1
    Hi, could you add a reproducable example? When testing with my own merge statement + trigger it does work. Using DB<>Fiddle can help in supplying an example that clarifies your question. Commented Jun 7, 2019 at 21:50
  • Is the trigger smart enough to handle multiple rows being inserted? Does it work if you limit the merge to insert a single row? Commented Jun 8, 2019 at 1:20


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.