我正在使用SQL Server 2012,我想创建一个“更改”表 - 当第二个表列值发生更改时,它将填充其他表中的数据。
我正在添加“更改”表“datatime2”和“rowversion”列,以便跟踪进行更改的时间。
使用“rowversion”作为主键是否可以?
我已经阅读here,如果当前行被更新,它将被更改,这就是为什么它不适合“主键”使外键无效。
无论如何,如果它不会被用作外键并且“更改”表的行将永远不会更新(只插入新行)是否可以使用“rowversion”作为PK或我应该使用额外的列?
答案 0 :(得分:0)
一些好消息here:
仔细阅读MSDN页面还表明,如果不正确地使用SELECT INTO语句,则可能存在重复的rowversion值。需要注意的事情。
我会在原始数据中坚持使用Identity字段,并将其转移到具有自己的Identity字段的更改跟踪表中。