SQL 服务器矢量时钟
SQL Server vector clock
SQL 服务器中是否有全局序列号保证定期递增(即使系统时间倒退),并且可以作为插入或更新操作的一部分访问?
是的,rowversion data type, and the @@dbts 函数正是您要找的。
这种使用 rowversion 标记行的模式由 Change Tracking 功能在较低级别实现。它添加了 insert/updates 的跟踪和删除,并且不需要您向 table.
添加列
我很确定 ROWVERSION 可以满足您的要求。保证 ROWVERSION 类型的列在任何单个数据库中都是唯一的,并且根据 SQL 文档,它只不过是一个递增的数字。如果每次完成数据更新后只保存 MAX(ROWVERSION),则可以通过查找大于保存的 MAX() 的 fo0r ROWVERSION 来在下一次更新传递中找到更新或插入的行。请注意,您不能以这种方式捕获删除!
另一种方法是使用 LineageId 和触发器。我很乐意解释这种方法是否有帮助,但我认为 ROWVERSION 是一个更简单的解决方案。
SQL 服务器中是否有全局序列号保证定期递增(即使系统时间倒退),并且可以作为插入或更新操作的一部分访问?
是的,rowversion data type, and the @@dbts 函数正是您要找的。
这种使用 rowversion 标记行的模式由 Change Tracking 功能在较低级别实现。它添加了 insert/updates 的跟踪和删除,并且不需要您向 table.
添加列我很确定 ROWVERSION 可以满足您的要求。保证 ROWVERSION 类型的列在任何单个数据库中都是唯一的,并且根据 SQL 文档,它只不过是一个递增的数字。如果每次完成数据更新后只保存 MAX(ROWVERSION),则可以通过查找大于保存的 MAX() 的 fo0r ROWVERSION 来在下一次更新传递中找到更新或插入的行。请注意,您不能以这种方式捕获删除!
另一种方法是使用 LineageId 和触发器。我很乐意解释这种方法是否有帮助,但我认为 ROWVERSION 是一个更简单的解决方案。