• My first work with triggers involved working with some very robust-looking code (written, of course, by someone long gone) that had all kinds of error handling built into every trigger.  I used these as a template to develope my own triggers, but my error handling never worked.  I went nuts trying to figure out why before I realized it is a waste of time.

    A trigger is considered an extension of the original statement.  The original statement (and the trigger) are aborted when an error occurs.  You can detect the error in the code containing the DML statement, but not in the trigger.

    If you need to put extra code in the trigger or elsewhere to avoid errors, go right ahead.  But it is pointless to put any "IF @@ERROR > 0" type of code in a trigger.  If there is an error, it won't get that far.