sen*_*nna 17 sql-server queue service-broker
我想在SQL Server Management Studio中清除队列,但我不想删除整个队列中的队列内容(消息).
谢谢,塞纳
Reb*_*ell 47
为了清楚起见,只需将前两个答案(Ben和Jānis)结合起来.这对我有用:
declare @c uniqueidentifier
while(1=1)
begin
select top 1 @c = conversation_handle from dbo.queuename
if (@@ROWCOUNT = 0)
break
end conversation @c with cleanup
end
Run Code Online (Sandbox Code Playgroud)
Ben*_*hul 16
这样的事情应该有效:
while(1=1)
begin
waitfor (
receive top(1)
conversation_group_id
from dbo.yourQueue
), timeout 1000;
if (@@rowcount = 0)
break;
end
Run Code Online (Sandbox Code Playgroud)
我将使用 语句结束对话(也将删除所有队列中的所有相关消息):
End Converstation @c With CleanUp
Run Code Online (Sandbox Code Playgroud)
如果你刚收到消息,那么你就会打开对话.结束对话使用CleanUp仅适用于特定情况.