Rule

  1. Identity columns should be used for all generated numbers where a gap in the sequence is not significant. i.e surrogate primary keys.
  2. If control of a sequence needs to be retained then this should be implemented using a row in a specific table which holds the next available number in the sequence, this should be locked, used and then updated.