当网络中的其他用户更新或将记录插入SQL表时,是否有办法触发事件?
我可以每隔几秒从数据库中读取一次表,然后比较数据以查看是否存在差异,但这似乎是资源密集型。
也许,我应该提到我使用C#/ WinForm和SQL数据库,虽然我已经标记了它。
我已经看过SQL Trigger,但是它还不需要读取触发表,这可能是资源密集型的?我正在寻找更多在后台运行的小程序/服务,当用户对数据库进行更改时,触发它。然后,前台应用程序可以检查服务以查看是否进行了更改。我觉得过于复杂吗?
答案 0 :(得分:1)
如果要完成的处理可以完全用SQL(或其他语言,但在数据库内)编写,那么您可以使用trigger。
在插入/更新/删除数据时,在数据库上执行触发代码。可以准确地做什么以及可以使用哪种语言取决于特定的数据库,但大多数数据库都支持触发器的概念。
答案 1 :(得分:1)
打开与服务器的连接并每隔几秒钟读取一次是多余的。 此外,当你有多个用户每隔几秒钟就会尝试连接你的数据库时,你会有疯狂的流量......
正如6502所说,触发器是要走的路。 在msdn中有一个很好的小article。
答案 2 :(得分:0)
在阅读了SqlDependency和Trigger之后,他们似乎都依赖于定期轮询数据库。我认为这最终会影响性能。所以我决定研究Windows服务上的代码。希望编写Windows服务,我可以存储有关刚刚保存的记录的信息。而且我可以轮询它以查看我需要重新加载的表。我希望我不要过于复杂化......
谢谢,每个人都为你的回复+1。