C# 使用 SQL 依赖项在查询未返回任何行时接收通知

本文关键字:任何行 返回 通知 查询 SQL 使用 依赖 | 更新日期: 2023-09-27 18:33:25

我目前正在开发一个 asp.net 的Web应用程序,并且有兴趣在其中的一部分实现SQL依赖项。有一个过程,用户将更新 SQL Server 数据库表中的某些行。托管在其他位置的 Windows 服务将收到 sql依赖项查询通知,并处理数据。我想要的是 Web 应用程序在检测到数据处理已完成后回发。我目前尝试这样做的方法是使用监视相关行的查询创建一个 SQL依赖项。我唯一关心的通知是查询不再返回行(意味着数据已完成处理)。有没有干净的方法来使这项工作?我当前的实现会收到每个更改的通知,这些更改是在处理数据时发出的。

C# 使用 SQL 依赖项在查询未返回任何行时接收通知

我相信

您可以使用表上的字段来跟踪更改。但是您将字段设置为整数(这将类似于@@Trancount works方式)。前提是这样的:

  1. 开始更新的每个服务都将将该字段增加 1。
  2. 完成后,他们将该字段减少一个(您的 Web 应用程序可以是控制该方面的应用程序)
  3. (注意)在错误时,服务需要注意将字段减少1。

您的 SqlDependency 将有一个监视此表的查询,并在该字段更改时选择该字段。当它为零时,表示不再返回行。