2017-04-18 40 views
0

在我当前的应用程序(使用SQL 2008)中,我们在每个表中使用TimeStamp列。当应用程序读取一行数据时,我们会将时间戳值与数据一起发送。当他们尝试保存所做的任何更改时,我们会比较时间戳列,以查看该行在读取后是否被其他人修改过。如果发生了变化,我们会拒绝更新并告诉他们刷新数据并再次尝试,以便他们能够看到发生了什么变化,并确保他们不会在不知情的情况下重写任何重要的内容。如果时间戳匹配,那么我们允许更新并向他们发送新的时间戳(以防他们想进行更多更改)。SQL 2016 - Memeory Optimized Table - 自SELECT以来更新了行

在SQL 2016内存优化表中,它们不再支持此列类型。他们确实有行版本控制,这很好,但是当创建记录时,是否有办法提取“时间戳”,以便我们可以以相同的方式使用它?有没有一种新的方式可以替代我们?

我很感激您可以提供的任何帮助。

回答

0

您可以在表中添加一个ROWVERSION列?或者,如果您只需要 以满足对正确格式列的需求,并且不需要实际版本控制,则您可以即时生成一列 。由于TIMESTAMP(现在替换为ROWVERSION)是 VARBINARY(8),你可以将你的时间戳列转换为 - SELECT [Timestamp] = CONVERT(VARBINARY(8),Timestamp_S) - GarethD Jul 12 '16 at 13:09

这是从SQL Server 2016 timestamp data type,也许这可以帮助?

+0

问题是我不相信内存优化表支持rowversion/timestamp数据类型。 (内存优化表不支持'timestamp'类型。) – gmbms