簡體   English   中英

如何從SQL Server發出c#控制台應用程序的信號?

[英]How can I signal a c# console app from SQL Server?

我不想對某些表進行輪詢,而是想發出一個等待的c#應用程序,表示要在表中處理新行,可能是通過觸發器。 有沒有辦法讓數據庫向控制台應用程序發出信號,或者我是否卡在表中查找新行?

查看查詢通知 (SQL Server 2005+)。

Microsoft SQL Server 2005引入了查詢通知,這是一種新功能,允許應用程序在查詢結果發生更改時從SQL Server請求通知。 查詢通知允許程序員設計僅在應用程序先前檢索到的信息發生更改時才查詢數據庫的應用程序。

這里有一個例子,說明如何編寫一個簡單的表單應用程序來注冊通知查詢: http//msdn.microsoft.com/en-us/library/a52dhwx7(VS.80).aspx

這確實需要在數據庫上啟用Service Broker

你應該看看在的備注部分的注釋 MSDN的SqlDependency文檔 ,以確保它是為您的方案是正確的選擇

檢查SqlCacheDependency是否可以使用...

http://www.asp.net/data-access/tutorials/using-sql-cache-dependencies-cs

如果是SQL Server 2008,您也可以使用Service Broker使用基於事件的激活

我已經使用WCF和SQLCLR將來自另一個進程的數據導入SQL,除了一些小問題之外,它還能很好地設置它。 因此,您可以通過這種方式從SQl調用其他進程。 這通常很難部署到客戶,但DBA不喜歡這種東西。

GJ

查看SQL Service Broker 使用Queue和WAITFOR語法我已將自定義輪詢服務更改為阻塞/信號服務。 您還可以查看事件激活 無論哪種方式,這將允許以非輪詢異步方式調用外部程序的事務方式,這不會減慢觸發器和數據庫鎖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM