我将大量数据归一化为100多个表格。有多个应用程序可以更改这些表中的基础数据,我想在这些更改上引发事件。我所知道的可能选择是:
如果某人之前已经这样做了,有人可以分享最好的方法吗?
我真正想要的是,如果有一个事务影响了12个表,那么我应该能够将一个事件冒泡而不是12个。假设有并发用户更改这些表。
答案 0 :(得分:0)
我能想到的两个选择:
答案 1 :(得分:0)
一种可能性是SQL Server查询通知:Using Query Notifications
答案 2 :(得分:0)
只要您想“批量”多项更改,我认为您应该遵循更改数据捕获或更改跟踪的路线(取决于您是否只是想要知道发生了什么变化或发生了什么变化。
它们应该被'轮询'程序使用,在那里你每几分钟(秒,毫秒???)轮询一次更改并引发事件。关于这一点的好处是,只要您存储上一个轮询的最后一个rowversion - 对于每个表 - 您可以随时检查自上次轮询以来的更改。您不依赖于实时触发器方法,如果暂停,您将永远丢失所有事件。可以在检查每个表的过程中轻松创建该过程,并且每个表只需要一个表来存储最后一个rowversion。
此外,此方法的开销将由您和轮询发生的频率控制。