2009-12-14 63 views
0

我只是数据库的新手。
我想知道如何以编程方式监视数据库的变化。 假设我想要一个.net应用程序,它会在每隔100或(n)行插入或行删除或更新后运行。如何实现?
我对触发器知之甚少,可以用它来启动可执行文件。
但我听说这不是一个好的做法。 还有别的办法吗?
2]在表更新上执行数据库触发事件?他们可以被抓进程序吗?
3]这里可以使用SQL报告服务吗?以编程方式监视/监视数据库(活动)

(同样假设这个应用程序是独立于实际的程序,它确实 数据库操作。)

thxz

回答

2

SQL Server 2005中引入的查询 通知,新功能, 允许应用程序从SQL Server请求 通知时, 结果的查询变化。查询 通知允许程序员 只有当 应用程序 以前检索到的信息发生更改时,才会查询 数据库。

退房的MSDN link更加清晰 和sample immplementation

+0

或者,如果它是甲骨文,使用数据库更改通知:http://download.oracle .com/docs/cd/B19306_01/appdev.102/b14251/adfns_dcn.htm – Salamander2007

+0

它是否意味着任何性能问题? – Amitd

0

触发器是真的要成为你唯一的办法,除非你不关心“第100”或“第n”的准确性。

2和3的答案是否定的。

您可以编写托管存储过程(MSDN example),但这对您真的没有帮助。一般而言,触发器可能是不好的做法,因为它们可能会阻止初始呼叫者,但有时它们是唯一的解决方案。

0

我认为你需要质疑你的要求,把这个低级别的数据监控放在一个单独的应用程序中。回想一下你的数据的变化可能源于 -

你有每一个充分的认识:

  • 存储过程中你的数据库中(现在的和未来的),哪些更新这个表?
  • 应用程序,它可以打你的数据库(现在和将来)

如果没有,那么看的变化降权在数据层面(即数据库内)可能是最好的选择,这可能意味着触发器...