SQL Server时态表创建重复记录

时间:2017-11-02 20:47:24

标签: sql sql-server sql-server-2016 temporal-tables

我已经在我们经常更新的一个生产表上实现了系统版本化(临时)表。此表由应用程序,超级用户(手动使用自定义脚本和标准化的sprocs)和系统作业进行更新。

我刚遇到一种情况,我看到一个新记录插入到历史记录表中,但它看起来与之前的记录完全相同。当我研究这个时,我发现这不是一次性的情况;还有更多。请记住,开始和结束日期不重复。上一条记录的结束日期与下一条记录的开始日期相匹配,所有其他数据完全相同。

如果可能的话,我想阻止这种情况发生,但首先我需要知道它的来源。

有没有人有过这方面的经验?有没有人理解时态表足以给我一些潜在的线索,可以触发插入历史表而不会对数据进行可见的更改?是否可以在不更改用户可见字段的情况下更改记录?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我非常确定表的更新实际上并没有更改数据但仍设置它(即更新表集field1 = field1)将导致历史表中的新条目。

我猜它是由'高级用户'脚本引起的(往往是我历史上第一个棘手代码的来源),尽管应用程序也可能负责。可能处于“代码审核”时间范围内,以找出更新的来源。