DATA_CONSISTENCY_CHECK 在我的表中打开。但是临时表仍然插入另一行以进行相同的数据更新。如何在 T-SQL 中进行限制?
Posted
技术标签:
【中文标题】DATA_CONSISTENCY_CHECK 在我的表中打开。但是临时表仍然插入另一行以进行相同的数据更新。如何在 T-SQL 中进行限制?【英文标题】:DATA_CONSISTENCY_CHECK is On in my table.But still temporal table inserts another row for same data update .How can I restrict in T-SQL? 【发布时间】:2020-11-24 08:44:27 【问题描述】:DATA_CONSISTENCY_CHECK 在我的表中打开。我正在尝试检查数据一致性以进行审计。当我在主表中更新相同的值时,时态表会保留同一行的历史记录,这导致难以跟踪版本更改。我正在使用 MSSQL 服务器。
【问题讨论】:
您使用的是哪种 DBMS 产品? “SQL”只是所有关系数据库都使用的一种查询语言,而不是特定数据库产品的名称(也没有“DATA_CONSISTENCY_CHECK”标准SQL之类的东西)。请为您使用的数据库产品添加tag。 Why should I tag my DBMS 那么就不要更新相同的值 - 这是有缺陷的应用程序/编程逻辑。如果内容没有实际更改,则永远不要更新行。 【参考方案1】:您误解了 DATA_CONSISTENCY_CHECK 选项的功能。当您启用基础表和历史表之间的链接时,它用于检查由 PERIOD FOR SYSTEM_TIME 中的 system_start_time_column_name 和 system_end_time_column_name 列定义的时间范围是否在基础表和历史表中不重叠(执行 CREATE/ALTER TABLE 命令时完成)。
如果您需要历史表中的重复数据删除,您必须自己实现。它可以是一项维护任务,包括禁用链接、删除重复项、正确更新时间范围列以及启用基础表和历史表之间的链接。
【讨论】:
以上是关于DATA_CONSISTENCY_CHECK 在我的表中打开。但是临时表仍然插入另一行以进行相同的数据更新。如何在 T-SQL 中进行限制?的主要内容,如果未能解决你的问题,请参考以下文章
为啥相同的代码在我的 BackGroundWorker 线程中比在我的 GUI 线程中慢得多?
为啥我的 UITextView 在我使用 frame 属性时出现,但在我使用约束时却没有?
localhost 仅在我的计算机中有效,在我的本地网络中无效
为啥 CString::LoadString 在我的应用程序的主模块(.exe)中有效,但在我的 extensionDLL 中无效?
我可以在我的 appdelegate applicationDidFinishLaunching 中插入 UINavigationController 并在我的笔尖实例化的 UITabBarContr