这个问题早就被提出来了,虽然它涵盖了SQL 2005和2008的可能解决方案,但是对于仍然普遍存在的SQL 2000,缺乏一个好的解决方案。
我需要一种方法来监视数据库表的某些字段的更改,并在发生这些更改时通知我的应用程序,以便我可以将它们作为广播消息在本地网络上传播,任何具有客户端的人都可以监听它们并将它们显示为警报(类似于股票市场数据达到特定阈值的情况)。
我不想轮询数据库,原因有几个。1)我不希望增加服务器的额外负载。2)我宁愿获得接近实时的通知,而不是等待轮询频率过期。
现在,我可以在更新数据库的应用程序中放置逻辑,但数据可以从多个来源更新,包括Web,我不想处理Web服务器跨DMZ边界发送通知等问题。而且我不想在20个不同的应用程序中维护它(这是一个更强大的问题)。
我看过在SQL 2000上使用扩展存储过程和触发器来实现这个功能,但是xp似乎很难跨平台,并且安装在SQL 2005和2008上时会出问题。也许我看到的示例中只是糟糕的代码,我不确定,但我正在寻找适用于SQL 2000和更高版本的解决方案。 有任何想法吗? 编辑: 我考虑放弃对2000的支持,但这并不能解决我的问题。我希望能找到一个能够长期使用的解决方案。许多Microsoft技术的问题在于他们停止了对它们的支持。例如,通知服务可以完成我需要的工作,但他们决定在2008年将其弃用,并且在下一个版本中将不再提供。因此,我正在寻找一个有很好机会保持稳定的解决方案。