【问题标题】:How do I execute a stored procedure whenever an item is added to a service broker queue?每当将项目添加到服务代理队列时,如何执行存储过程?
【发布时间】:2012-04-16 19:42:37
【问题描述】:

我正在使用 SQL 服务代理。我有一个队列,另一个进程正在向其中添加项目。每当将项目添加到队列中时,我都想运行存储过程。该过程将从队列中接收顶部项目并在存储过程中使用其信息。做这样的事情的正确语法是什么?在使用 Service Broker 队列时,我是使用典型的 SQL 触发器还是有什么特殊的用途?

【问题讨论】:

    标签: sql sql-server sql-server-2008 stored-procedures service-broker


    【解决方案1】:

    可以将触发的存储过程指定为队列定义的一部分。 请参阅 CREATE QUEUE 的文档 - 特别是 ACTIVATION 子句。

    来自documentation的例子:

    以下示例创建一个可用于接收的队列 消息。队列在什么时候启动存储过程expense_procedure 一条消息进入队列。存储过程以用户身份执行 费用用户。队列最多启动 5 个存储的实例 过程。

    CREATE QUEUE ExpenseQueue
        WITH STATUS=ON,
        ACTIVATION (
            PROCEDURE_NAME = expense_procedure,
            MAX_QUEUE_READERS = 5,
            EXECUTE AS 'ExpenseUser' ) ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      相关资源
      最近更新 更多