1
我正在使用SQL Server 2012,并且我想创建一个“更改”表 - 当第二个表的列值发生更改时,它将使用其他表中的数据填充。使用“rowversion”作为主键列
我正在添加到“更改”表“datatime2”和“rowversion”列以追踪何时进行更改。
可以使用“rowversion”作为主键吗?
我已经阅读here,如果当前行被更新,那么它会被更改,这就是为什么它不适合“主键”使外键无效。无论如何,如果它不会被用作外键,并且“更改”表的行将永远不会被更新(只有新行将被插入),那么可以使用“rowversion”作为PK或I应该使用额外的列?
请你能指定你正在使用的数据库。你能否也请解释你的逻辑的上下文......这是什么数据库被用于。即如果这是针对数据仓库的话,那么这绝对是错误的方式。 – SQLGuru 2013-02-11 08:42:14
这个想法是当某个表中的某个日期因DML操作而改变时,旧数据将被插入到我的“Changes”表中,所以如果我需要查看如何或何时在主表中进行更改。 – gotqn 2013-02-11 08:47:18
你要么必须实现某种缓慢变化的维度,要么使用触发器。我更喜欢SCD的第一个选项,但这是一个涉及到的实施过程。除此之外,为什么要使用行版本而不是物理主键? – SQLGuru 2013-02-11 08:55:37