我想知道如何以编程方式监视数据库的更改。
假设我想要一个.net应用程序,它将在每100次或第(n)行插入或行删除或更新后运行。如何实现?
我对触发器知之甚少。它可以用来发射可执行文件
但我听说这不是一个好习惯。
还有其他方法吗?
2]表更新上的数据库触发事件?他们可以被程序捕获吗?
3]可以在这里使用SQL报告服务吗?
(还假设这个应用程序独立于实际的程序 数据库操作。)
答案 0 :(得分:2)
SQL Server 2005引入了查询 通知,新功能 允许应用程序请求 来自SQL Server的通知 查询结果发生了变化。询问 通知允许程序员 设计查询的应用程序 数据库仅在发生更改时 给应用程序的信息 以前检索过。
查看MSDN link 以获得更清晰的信息 和sample immplementation
答案 1 :(得分:0)
除非您不关心“第100个”或“第n个”的准确性,否则触发器确实是您的唯一途径。
2和3的答案是否定的。
您可以编写托管存储过程(MSDN example),但这对您没有帮助。通常,触发器可能是不好的做法,因为它们可以阻止初始调用者,但有时它们是唯一的解决方案。
答案 2 :(得分:0)
我认为您需要质疑将这种低级数据监控放在单独的应用程序中的要求。考虑一下您的数据更改可能来自何处 -
你对每一个都有充分的理解:
如果没有,那么在数据级别(即在数据库内)观察更改可能是最佳选择,这可能意味着触发......
答案 3 :(得分:0)
在http://msdn.microsoft.com/en-us/library/ms166104(v=SQL.90).aspx
了解“Service Broker”