Triggers and Transactions

  • Tom.Thomson (10/5/2010)


    Nice question.

    But is there something wrong with the documentation? The BoL page referenced states

    @@TRANCOUNT is incremented by one when entering a trigger, even when in autocommit mode. (The system treats a trigger as an implied nested transaction.)

    which suggests that the two rows logged for the insert of value 2 (which occurred in an explicit transaction) should have tc = 2 not tc = 1.

    I don't know. You are right but experiments show this behaviour.

    Many times I read BOL or some other documentation I feel like being in the helicopter.



    See, understand, learn, try, use efficient
    © Dr.Plch

  • honza.mf (10/5/2010)


    I don't know. You are right but experiments show this behaviour.

    Many times I read BOL or some other documentation I feel like being in the helicopter.

    BoL often makes me feel like that. And the experiment in this case shows another oddity: when in autocommit mode, a reference to @@tc in the statement bring auto-committed will be evaluated before the transaction is started (hence the 0 count in the first and fourth rows).

    I've written quite a lot of things that look at @@tc for various reasons, but results like these make me very very careful about doing it!

    Tom

Viewing 2 posts - 31 through 31 (of 31 total)

You must be logged in to reply to this topic. Login to reply