我SqlDependency
在 C# 应用程序中使用来跟踪数据何时更改。最近,我开始收到一个错误,表明已达到查询通知模板限制。设置依赖项后立即调用更改处理程序:
void sqlDependency_OnChange(object sender, SqlNotificationEventArgs e)
{
// At this point, e.Info == "TemplateLimit" and e.Type == Subscribe
}
我查找了 TemplateLimit 并发现以下信息:“订阅查询导致其中一个目标表上的模板数量超过最大允许限制。”
我尝试通过执行以下命令从服务器中删除所有活动的查询通知:
KILL QUERY NOTIFICATION SUBSCRIPTION ALL
执行此操作后,视图中将没有任何条目sys.dm_qn_subscriptions
。但是,我在设置时仍然遇到相同的错误SqlDependency
。即使订阅已全部删除,查询通知模板似乎也没有被清除。我怎样才能SqlDependency
让它再次工作?
编辑:我最终通过重新启动 SQL Server 解决了这个问题(正如我所料)。但是,我仍然想知道在所有查询通知订阅都被杀死后如何清除模板。