2016-11-14 137 views
0

我有一组具有不同架构的参考表,我们在整合文件时将其用作参考数据。参考数据可以从GUI进行修改。拍摄SQL表的快照

而且要求是,如果有任何更改,我需要创建数据的快照。例如,用户应该能够看到哪些参考数据已被用于特定的日期。

选项1:使用日期历史化每天晚上的所有表格。通过这种方式,当用户想要查看用于特定日期的数据时,我们可以轻松查询相应的历史记录表。由于用户不会每天更改数据,所以我们将使数据库日复一日地变大。

选项2:只对历史数据(行)进行修改,修改日期并使用视图获取特定日期的数据。但是这种方式我需要编写很多视图,因为不同表格的模式不同。

如果您知道我可以使用的最佳方式,如果您分享您的知识,我将不胜感激。

感谢,

+1

在SQL 2016,你有时间的表。在SQL 2014中,您需要在触发器中创建逻辑等,这听起来可能会令人望而却步。当然,另一种选择是保存参考数据与文件整合信息 –

回答

0

不知道如果可能的话,但是:
选项3:创建/编辑触发器OnInsert /更新/删除填写新值到“历史表格”,包括时间戳。
要获取在“X”日使用的管理数据,只需使用时间戳。
另一种选择(同样不知道,如果可能的话)是“start_dt/END_DT”添加到管理员的表,并且进程查找只有活动数据
塞尔吉奥

+0

在这个选项一直以来,我需要做出不同的密钥对不同的表,以匹配其数据已被修改,检索结果时,这是麻烦的。 – SabVenkat

+0

好的,也许我不完全理解你的问题。你想知道哪些数据已经从先前的记录改变了? –

+0

此外,不知道你的环境是否可能,但理想情况下,你会有表XX(主)和表XX_HIST(这将是XX的DDL的副本加上时间戳和任何其他评论领域,例如..为可视化目的)。 将所有管理数据更改收集到单个表中会有点复杂,因为它们具有不同的DDL。可能的,但可能不值得的努力。 –