有没有办法检测SQL中新行的插入?

时间:2014-06-05 12:34:39

标签: c# sql database

我在C#中有一个程序,它允许用户发送和接收文本消息,接收传入文本的服务器解析消息然后将它们放入SQL数据库,我想知道是否有一种方法可以检测到插入进入此数据库的新行,并触发一个事件,通知用户新的传入消息?

5 个答案:

答案 0 :(得分:4)

我建议你使用SqlDependency类。

以下是一些示例代码:

这是一个很长的阅读,但我建议您查看以下MSDN article

答案 1 :(得分:0)

我建议使用Windows服务,它将监视SQL Server数据库中添加的消息,然后触发相应的操作。另一种方法是使用MSMQ,您可以在插入数据库后将消息发送到MSMQ。有一张桌子

               User Id , MessageCount  Last Message DateTime
                1           2             1/1/2014 12:30

并在收到消息时更新此表。

答案 2 :(得分:-1)

当然有。您可以编写触发器,也可以使用更改数据捕获机制。

答案 3 :(得分:-1)

为什么不试试CLR触发器?

http://msdn.microsoft.com/en-us/library/ms254959%28v=vs.110%29.aspx

您可以从CLR过程中触发事件。

虽然这不是解决问题的方法。应将这些消息放入ServiceBus队列并在单独的线程或进程上异步处理(例如Azure中的辅助角色?)

答案 4 :(得分:-2)

插入后的SQL触发器

  

http://msdn.microsoft.com/en-us/library/ms189799.aspx

考虑到下面的评论,我的答案仍然是相同的:

  

http://www.codeproject.com/Questions/341680/Using-Triggers-in-Csharp-and-Sql-Server

这里也有类似的问题:

  

On table update, trigger an action in my .NET code