SQL Server:等待新行
问题描述:
如何等待从.NET客户端应用程序出现在SQL Server表中的新行?SQL Server:等待新行
背景:我想建立一个基于表的消息队列。我不想使用Service Broker,因为我希望消息具有结构化和强类型。使用普通表我也可以与其他表有关系。
答
在我们的应用程序中,我们使用System.Threading.Timer来轮询数据库表。一旦有新消息可用,它正在处理中。如果处理成功,则从DB中删除消息。
答
您需要轮询或得到通知。
轮询将要求客户端定期查询表,或者使用谓词或count(*)
。这可能不是一个好的解决方案。
它可能是一个便宜但有用的通知系统,在表中放置触发器并向客户端的侦听器发送消息。
* GASP *触发“等待”表和一个看着你的新表开火的工作。 Service Broker真的很棒......只是说。 – SQLMason 2012-04-06 18:21:47
Yeah Service Broker是完美的,但它不允许使用漂亮的表作为队列(对吗?我必须使用令人讨厌的XML blob)。 – usr 2012-04-06 18:24:55
您可以编写一个proc来查看队列...您可以查询XML(不会很好地执行) – SQLMason 2012-04-06 18:57:49