当数据在Sql Server中发生变化时,有没有办法在.NET中通知?喜欢活动?

时间:2012-09-10 13:57:30

标签: .net sql-server azure

有没有办法将事件绑定到Sql Server(特别是Azure),以便在表中有新数据时,我的.NET进程会收到通知?

我讨论的另一个选项是Sql Server long polling查询。也就是说,我执行一个查询,但它没有返回任何东西,直到有东西返回或达到超时。

为了更清楚我的问题,我在Windows Azure的不同实例中有不同的线程等待通知。他们必须在收到新通知后立即采取行动。我不想让他们每2秒查询一次数据库或存储。

2 个答案:

答案 0 :(得分:5)

不在Azure中。在包装产品中,您有Query Notifications及其衍生产品(SqlNotificationRequestSqlDependencySqlCacheDependency),有关详细信息,请参阅The Mysterious Notification。您可以将它用作LinqToCache

但Azure不支持查询通知。在Azure上,您的应用程序应在使用Azure Queues更新数据库时通知。

答案 1 :(得分:2)

您可以使用SqlTableDependency

SqlTableDependency是一个通用的C#组件,用于在指定数据库表的内容发生更改时接收通知。

.NET SqlDepenency有什么区别?

基本上,主要区别在于SqlTableDependency发送的事件包含插入,更改或删除的记录的值,以及在表上执行的DML操作(插入/删除/更新):SqlDepenency没有说明什么数据在数据库表上发生了变化,他们只说有些事情发生了变化。