我在我的应用程序中启动了以下命令:
WAITFOR (RECEIVE CONVERT(int, message_body) AS Message FROM MyQueue)
当我运行“sp_who2 active”时,我得到 Status=SUSPENDED 和 Command=DELETE
注意:从 StackOverflow 移出。
我在我的应用程序中启动了以下命令:
WAITFOR (RECEIVE CONVERT(int, message_body) AS Message FROM MyQueue)
当我运行“sp_who2 active”时,我得到 Status=SUSPENDED 和 Command=DELETE
注意:从 StackOverflow 移出。
因为是一个DELETE。RECEIVe 只是类似的语法糖
如果启用保留,则为 UPDATE,并将显示为 UPDATE。有一些细节,比如会话组锁定是如何完成的,如何确保正确的消息 ExactlyOnceInOrder 语义以及 RECEIVE 的语法树并不是真正可以在 T-SQL 中构建的。正如我所说,细节...
我在Using Tables as Queues中推荐使用 DELETE 的 OUTPUT 子句从表中“出列”,这绝非巧合……