2009-02-23 79 views
7

SQL Server 2005中的CLR觸發器是否可以通過MSMQ將消息發送到隊列?SQL Server觸發器 - 將消息發送到隊列

我正在使用SQL Server項目類型,但System.Messaging不顯示爲我可以添加的參考。


基本上我需要一些類型的動作發生(打印)行時寫入表中。生成該行的設備是手持式掃描儀,只能進行基本操作 - 其中一種是通過odbc向SQL服務器寫入數據。最初的想法是輪詢表格,抓取記錄,打印記錄,刪除記錄。這可能會正常工作,但它似乎是一個很好的案例和藉口瞭解消息隊列。

回答

4

是的,這是可能的。

我不會做一個觸發器,但:TXN在將保持打開更長的時間,這是資源密集型的,如果它掛起等

你可以通過一個存儲過程更新?

或將行推入由寫入隊列的SQL代理作業監控的輪詢表中?

+0

我認爲存儲過程是可行的,但我仍然不確定從SQL Server項目訪問System.Messaging的路障。我googling這個並獲得混合信號 - System.Messaging是不可信的,所以它SQL Server將無法使用它,或者這是錯的? – anonymous 2009-02-23 20:40:46

3

如果該程序集不受信任,仍然可以從SQL Server訪問它 - 它本身不可用,並且必須手動導入並標記爲「Untrusted」本身。前段時間我遇到了與System.DirectoryServices相同的問題。

這傢伙有問候的System.DirectoryServices同樣的問題,你,但這樣做同樣的方式在CREATE ASSEMBLY語句應該允許您訪問System.Messaging:

http://www.mydatabasesupport.com/forums/ms-sqlserver/218655-system-directoryservices-allowable-clr.html

0

這裏有一些這個老問題會如何處理新思路: http://nginn.org/blog/?p=376

Nginn-messagebus是我的消息隊列基於SQL服務器上,並針對那些依靠SQL服務器上的.Net應用程序項目。