【发布时间】:2017-11-02 20:47:24
【问题描述】:
我在我们的一个经常更新的生产表上实现了一个系统版本化(临时)表。此表由应用程序、高级用户(使用自定义脚本和标准化存储过程手动)和系统作业更新。
我刚刚遇到了一种情况,我看到一条新记录插入到历史记录表中,但它看起来与之前的记录完全相同。当我对此进行研究时,我发现这不是一次性的情况。还有很多。请记住,开始和结束日期不重复。上一条记录的结束日期与下一条记录的开始日期一致,所有其他数据完全相同。
如果可能的话,我想防止这种情况发生,但首先我需要知道这是从哪里来的。
有人遇到过这种情况吗?有没有人足够了解临时表,可以给我一些潜在的线索,说明什么会触发插入历史表而不对数据进行可见的更改?是否可以在不更改用户可见字段的情况下更改记录?
提前致谢。
【问题讨论】:
-
我很确定表的更新实际上并没有改变数据但仍然设置它(即更新表集字段1 = 字段1)将导致历史表中的新条目。如果你能进入开发环境,给它一个测试
-
好了!那确实做到了。也有道理。感谢您的帮助!
-
把评论变成答案,供其他人日后参考。
-
@Adam - 你能确认第十二个发现吗?我有同样的问题,似乎更新语句具有相同的值(设置 field1=field1)
标签: sql sql-server sql-server-2016 temporal-tables