• Short answer:
    You want a dynamically-generated, static trigger.  That sounds contradictory but it's not.

    More detailed answer:
    You must meet two critical conditions here:
    1) the trigger must execute as quickly as possible.
    2) the trigger code must be generated rather than written by hand.

    When you consider those together, what you end up with is code that dynamically generates the trigger based on the current table definition (with control value(s) passed in as required).  But the generated code is static, i.e., column names, data types, etc. are not looked up at run time, but at trigger create time.

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.