SQL Server RowVersion/Timestamp – Comparisons

From MSDN:

Each database has a counter that is incremented for each insert or update operation that is performed on a table that contains a rowversion column within the database. This counter is the database rowversion. This tracks a relative time within a database, not an actual time that can be associated with a clock. Every time that a row with a rowversion column is modified or inserted, the incremented database rowversion value is inserted in the rowversion column.

http://msdn.microsoft.com/en-us/library/ms182776.aspx

  • As far as I understand, nothing ACTUALLY happens simultaneously in the system. This means that all rowversions should be unique. I venture to say that they would be effectively useless if duplicates were allowed within the same table. Also giving credance to rowversions not being duplicated is MSDN’s stance on not using them as primary keys not because it would cause violations, but because it would cause foreign key issues.
  • According to MSDN, “The rowversion data type is just an incrementing number…” so yes, later is larger.

To the question of how much it increments, MSDN states, “[rowversion] tracks a relative time within a database” which indicates that it is not a fluid integer incrementing, but time based. However, this “time” reveals nothing of when exactly, but rather when in relation to other rows a row was inserted/modified.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)