0

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

4

2 回答 2

1

我很确定 ROWVERSION 可以满足您的要求。保证 ROWVERSION 类型的列在任何单个数据库中都是唯一的,并且根据 SQL 文档,它只不过是一个递增的数字。如果您每次完成数据更新后只保存 MAX(ROWVERSION),则可以通过查找大于保存的 MAX() 的 fo0r ROWVERSION,在下一次更新过程中找到更新或插入的行。请注意,您无法以这种方式捕获删除!

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

于 2018-06-14T20:58:40.440 回答
1

是的,rowversion数据类型和@@dbts函数就是您要查找的内容。

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

于 2018-06-14T20:52:20.140 回答