Thom Andrews shares a bit of advice:
A problem I’ve seen raised on numerous occasions is users that are getting a non-descript error when they are doing some kind of DML/DDL operation, and they don’t know why they are getting the error, and what is causing it. That error is:
Msg 3609, Level 16, State 2, Line 1
The transaction ended in the trigger. The batch has been aborted.
Read on to learn more about good alternatives, remembering that you’re in the context of some other call when a trigger fires.