我正在使用 SQL 服务代理。我有一个队列,另一个进程正在向其中添加项目。每当将项目添加到队列中时,我都想运行存储过程。该过程将从队列中接收顶部项目并在存储过程中使用其信息。做这样的事情的正确语法是什么?在使用 Service Broker 队列时,我是使用典型的 SQL 触发器还是有什么特殊的用途?
问问题
3285 次
1 回答
3
可以将触发的存储过程指定为队列定义的一部分。请参阅文档CREATE QUEUE
- 特别是该ACTIVATION
条款。
文档中的一个示例:
以下示例创建一个可用于接收消息的队列。当消息进入队列时,队列启动存储过程费用_procedure。存储过程以用户 ExpenseUser 的身份执行。队列最多启动存储过程的 5 个实例。
CREATE QUEUE ExpenseQueue WITH STATUS=ON, ACTIVATION ( PROCEDURE_NAME = expense_procedure, MAX_QUEUE_READERS = 5, EXECUTE AS 'ExpenseUser' ) ;
于 2012-04-16T20:24:44.920 回答