在我当前的应用程序中(使用SQL 2008),我们在每个表中使用TimeStamp列。当应用程序读取一行数据时,我们会使用数据发送时间戳值。当他们尝试保存任何更改时,我们会比较时间戳列,以查看该行是否被其他人修改,因为它已被读取。如果有更改,我们拒绝更新并告诉他们刷新数据并再次尝试,以便他们可以看到更改的内容并确保在不知情的情况下不会覆盖任何重要内容。如果时间戳匹配,那么我们允许更新并向他们发送新的时间戳(如果他们想要进行更多更改)。
在SQL 2016内存优化表中,它们不再支持此列类型。他们确实有行版本控制这很好,但有没有办法在创建记录时提取“时间戳”,以便我们可以以相同的方式使用它?我们可以使用新的方法吗?
感谢您提供的任何帮助。
答案 0 :(得分:0)
您可以在表中添加ROWVERSION列吗?或者如果你只是 需要它来满足正确格式的列的需要,以及 实际上版本控制不是必需的,你可以只生成一列 在飞行中。因为TIMESTAMP(现在由ROWVERSION取代)是 VARBINARY(8)您可以将Timestamp列转换为此 - SELECT [Timestamp] = CONVERT(VARBINARY(8),Timestamp_S) - GarethD Jul 12 '16 at 13:09
这取自SQL Server 2016 timestamp data type,也许这有帮助?