timestamp vs date column sql azure for data sync and optimistic concurrency
将 Sql Azure 与实体框架一起使用。我们的大多数表格都有一个日期列,我们存储记录的编辑时间和编辑者。出于以下原因将这些列设置为时间戳列是否有好处
如果我们想通过 SQL 数据同步将此数据库与另一个数据库同步,即如果我们有一个时间戳列,我们可以将其用于我们的日志记录和数据同步,特别是如果数据同步坚持所有具有时间戳列的表,时间戳是否有帮助
有这个专栏有助于乐观并发(通过实体框架)吗?
- 你知道 sql server 中有一个时间戳列吗? IE。您知道 TImestamp 不是日期/时间数据类型,而是根据文档运行的数据库版本号,您能想象如何在两个实例之间同步它吗?
-
取决于您真正使用的与日期相关的数据类型。您知道标准 DATETIME 类型的精度仅为 3.33ms 吗?对我来说,对于并发检查所需的时间戳来说,这还不够准确...... TIMESTAMP(或现在:ROWVERSION)数据类型要好得多,因为它在每次发生变化时都提供连续的二进制编码数字 - 不无论另一个事件发生多近 - 值都会有所不同(时间准确性没有问题)
-
tomtom - 你的意思是时间戳不会取代日期时间进行日志记录,但我们不需要实际的日期时间只是订单(我们将日志存储在单独的表中) - 抱歉,如果我不清楚。 mark_s - 感谢您的投入。看起来如果我需要更好的并发检查,我需要在我的表中获取时间戳列
要回答您的第一个问题,否。SQL 数据同步服务将创建自己的更改跟踪机制,您无法将其配置为重用您的时间戳列。