使用“rowversion”作为主键列

时间:2013-02-11 08:26:37

标签: tsql primary-key sql-server-2012 rowversion

我正在使用SQL Server 2012,我想创建一个“更改”表 - 当第二个表列值发生更改时,它将填充其他表中的数据。

我正在添加“更改”表“datatime2”和“rowversion”列,以便跟踪进行更改的时间。

使用“rowversion”作为主键是否可以?

我已经阅读here,如果当前行被更新,它将被更改,这就是为什么它不适合“主键”使外键无效。

无论如何,如果它不会被用作外键并且“更改”表的行将永远不会更新(只插入新行)是否可以使用“rowversion”作为PK或我应该使用额外的列?

1 个答案:

答案 0 :(得分:0)

一些好消息here

  

仔细阅读MSDN页面还表明,如果不正确地使用SELECT INTO语句,则可能存在重复的rowversion值。需要注意的事情。

我会在原始数据中坚持使用Identity字段,并将其转移到具有自己的Identity字段的更改跟踪表中。