【发布时间】:2011-03-15 07:31:41
【问题描述】:
在Service Broker上搜索了很多之后,我遇到了this question and answer:
我的场景与那里提到的类似,因为我在表上有一个 SQL 触发器,在这个触发器中我调用 xp_cmdshell 将主键信息传递给外部 exe。
我可以看到设置 Service Broker 队列和服务而不是在表上使用触发器的价值。据我了解,我为处理队列中的消息而设置的激活存储过程现在将包含我对 xp_cmdshell 的调用。
但是,我不知道如何将“更改表中的数据”事件作为触发事件。我希望CREATE EVENT NOTIFICATION 子句有一个ON TABLE [x] FOR [INSERT|UPDATE] 部分,但它没有。
任何指针将不胜感激。
【问题讨论】:
-
不,它没有。最初我喜欢使用 SQLDependency a-la ASP.Net 的想法,但问题是它的 OnChange 事件并没有告诉我数据库中的哪些记录发生了变化。
标签: sql service-broker