1

在对 Service Broker 进行大量搜索之后,我遇到了这个问题和答案

我的场景与那里提到的类似,因为我在表上有一个 SQL 触发器,在这个触发器中我调用 xp_cmdshell 将主键信息传递给外部 exe。

我可以看到设置 Service Broker 队列和服务而不是在表上使用触发器的价值。据我了解,我为处理队列中的消息而设置的激活存储过程现在将包含我对 xp_cmdshell 的调用。

但是,我不知道如何将“更改表中的数据”事件作为触发事件。我希望该CREATE EVENT NOTIFICATION条款对它有ON TABLE [x] FOR [INSERT|UPDATE]一部分,但它没有。

任何指针将不胜感激。

4

1 回答 1

1

您提供的链接实际上为您的问题提供了很好的答案。如此处所述,事件通知功能实际上适用于 DDL 和数据库状态更改。您想要的可能是坚持使用触发器,但使 xp_cmdshell 调用异步。我真的认为没有比 Remus 对链接问题给出的更好的答案了。

于 2011-03-15T17:17:38.400 回答