• Good question.

    A better (more explicit) MSDN reference would be:

    http://msdn.microsoft.com/en-us/library/ms188059(v=SQL.90).aspx

    The following extract from the 'Remarks' section covers the issue:

    'If the value inserted is larger than the current identity value for the table, SQL Server automatically uses the new inserted value as the current identity value.'

    (Where 'larger' is relative to the direction of the identity.)

    This extract is better than that provided on the question's Answer's Explanation because it clearly indicates it is the last insert itself that results in the identity value being updated (i.e. not something that is evaluated before the next insert).

    One can override the setting via IDENT_SEED and then all kinds of problems can be generated (duplicated identity values, etc.).