我正在查看 SQL Server 2016 时态表,找不到任何有效的方法来查询现在已删除的所有历史记录。
我不喜欢软删除或移动到“已删除项目表”,因为我觉得临时表是多余的。
这可以通过时态表以有效的方式实现吗?
时态表旨在为您提供数据的时间点视图,而不是状态视图 - 它实际上并不理解状态。用户不会暴露任何内容来确定行如何到达时态历史表中。
如果您没有临时暂停/停止临时表上的系统版本控制,那么您只需要找到历史表和活动表之间的增量。历史表中所有在活动表中没有对应行的剩余行都将被删除。
例如,如果您有 tblCustCalls 并且使用 tblCustCallsHistory 启用它,类似于SELECT * FROM tblCustCallsHistory WHERE ID NOT IN (SELECT ID FROM tblCustCalls)
。在此示例中,ID 是主键。如果表非常大,但基本概念没有改变,您可以优化 TSQL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)