2017-09-13 80 views
0

在我们的SQL Server数据库中,我们有大约800多个表,并且有40-50个表是业务关键表。 MIS团队需要根据这50个业务表格生成报告。SQL Server Delta记录提取

这50个表经常更新。 MIS团队需要这些增量记录(更新/插入/删除)

什么是最佳解决方案?

我们这里有几个approches 1.Always在2.Replication 3.Mirroring 4.Introducing在这50台新列(LastModifiedDate &创建索引),并定期地拉这些记录,并将其填充到MIS环境。

新的列LastModifiedDate方法将会有巨大的代码更改。

此基础上50桌,我们的存储过程的数量庞大,它具有插入/更新

语句。在这些存储过程中,我们需要为LastModifiedDate进行代码更改。

从上述方案中最好的解决方案是什么?

请让我们知道是否有其他方法可以做。注意:我们使用SQL Server 2008 R2

问候KARTHIK

回答

0

一种方法是有插入,更新和对这些表删除触发器,并为每个表存档表具有完全相同的列例如加用户名,修改日期时间和一点点来指示新旧。然后,触发器简单地插入到归档中,从插入的/删除的+当前用户中选择,当前时间,1代表插入,0代表删除。

然后,所有的管理信息系统都需要关注归档表,并且不需要对现有表进行结构更改。

+0

感谢您的回复。我希望触发不会是更好的解决方案。 – Karthik

+0

@Karthik如果创建150个触发器会让您担心,我有一个存储过程自动创建它们,我很乐意分享! –

+0

兄弟,创建150个触发器在这里并不重要。我可以编写脚本来创建它。但影响是非常重要的,因为它是关键数据库并且频繁插入/更新。触发导致我希望的问题 – Karthik