SqlDependency 实现监听Sqlserver数据库表有变化时发起通知
编程开发
Sqlserver监听数据数据库变化
C# SqlDependency如何实现监听当数据库某个表有数据变化时(增删改)进行收到通知
SqlDependency:
SqlDependency 对象表示应用程序和 SQL Server 实例间的查询通知依赖关系。应用程序可以创建一个 SqlDependency 对象并进行注册以通过OnChangeEventHandler 事件处理程序接收通知。
它提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的。
应用:数据实时性较高的场景、新闻、监控数据等。
可以结合SignalR来实现web的实时数据更新。
前段时间接手了一个烂尾程序,因为觉得维护起来太过复杂和难受(多数时候出问题根本没法找问题 可能是code能力有限),长痛不如短痛,于是整理后拆分重构开发了自己的软件版本,维护起来确实惬意了一段时间,期间因为数据库性能问题有考虑过 使用这个数据库变更通知来替代定时查询来减轻数据库压力,但最后发现这个并不能解决实际需求情况,最后也就没有用上。
这里做下代码记录(网上也挺多的):
一、 在数据库里执行下面的语句 开启数据库的设置 启用数据库监听服务 不然SqlDependency特性无法生效