2017-03-26 37 views
1

当网络中的其他用户更新或插入记录到SQL表中时,是否有办法触发事件?当其他用户更新到表格时,是否有办法触发事件?

我可以每隔几秒钟从数据库中读取表格,然后比较数据以查看是否有差异,但这似乎是资源密集型的。也许,我应该提到我正在使用C#/ WinForm和SQL数据库,虽然我已经标记了它。


我已经看了SQL触发,但不也需要读取触发器表,可以是资源密集?我正在寻找更多的在后台运行的小程序/服务,当用户对数据库进行更改时,触发它。然后Foreground应用程序可以检查服务以查看是否进行了更改。我的思维过于复杂吗?

+1

是的,你可以创建触发器表。你可以检查这个问题的接受答案:http://stackoverflow.com/questions/741414/insert-update-trigger-how-to-determine-if-insert-or-update – mako

+0

你想在触发..只是检查并记录更改或防止更改? – Aamir

+0

@mako,这个链接是用于VB的,它的概念也和我在我的问题中提到的类似,我试图避免这样做。 – itchibahn

回答

1

如果要完成的处理可以完全用SQL(或其他语言,但在数据库中)编写,那么您可以使用trigger

在插入/更新/删除数据时在数据库上执行触发代码。究竟可以做什么以及可以使用哪种语言取决于具体的数据库,但大多数数据库都支持触发器的概念。

1

打开与服务器的连接并每隔几秒钟读取一次是多余的。 除了你会有疯狂的流量,当你有多个用户谁将会尝试每隔几秒钟连接你的分机...

因为6502说,触发器是要走的路。 msdn中有一个很不错的article

0

在阅读SqlDependency和Trigger之后,他们似乎都依赖于定期轮询数据库。我认为这最终可能会影响表现。所以我决定在Windows服务上学习代码。希望编写Windows服务,我可以存储有关刚刚保存的记录的信息。而且,我可以轮询它来查看我需要重新加载哪张表。我希望我不会过分复杂的东西....

谢谢,+1大家为您的答复。

相关问题