代码之家  ›  专栏  ›  技术社区  ›  Creyke

SQL Server矢量时钟

  •  0
  • Creyke  · 技术社区  · 8 年前

    SQL Server中是否有一个全局序列号,它保证周期性地递增(即使系统时间倒退),并且可以作为插入或更新操作的一部分进行访问?

    2 回复  |  直到 8 年前
        1
  •  1
  •   David Browne - Microsoft    8 年前

    是的 rowversion 数据类型,以及 @@dbts 功能就是你要找的。

    这种使用rowversion标记行的模式在较低的级别上由 Change Tracking 特征。它添加了插入/更新和删除的跟踪,并且不需要向表中添加列。

        2
  •  1
  •   BoCoKeith    8 年前

    我很确定罗文版会做你想做的。rowversion类型的列保证在任何单个数据库中都是唯一的,并且根据sql文档,它只不过是一个递增的数字。如果每次更新完数据后都保存max(rowversion),则可以在下一次更新过程中查找大于保存的max()的更新行或插入行。注意,您不能以这种方式捕获删除!

    另一种方法是使用沿袭id和触发器。如果有帮助的话,我很乐意解释这种方法,但我认为rowversion是一个更简单的解决方案。

    推荐文章