2009-02-23 80 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应用程序项目。