如何等待從.NET客戶端應用程序出現在SQL Server表中的新行?SQL Server:等待新行
背景:我想建立一個基於表的消息隊列。我不想使用Service Broker,因爲我希望消息具有結構化和強類型。使用普通表我也可以與其他表有關係。
如何等待從.NET客戶端應用程序出現在SQL Server表中的新行?SQL Server:等待新行
背景:我想建立一個基於表的消息隊列。我不想使用Service Broker,因爲我希望消息具有結構化和強類型。使用普通表我也可以與其他表有關係。
正常的方法是使用輪詢,但如果您確實需要立即事件,則可以使用SqlDependency
類在查詢結果發生更改時獲取事件。
在我們的應用程序中,我們使用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