22

SQL Server Management Studio でキューをクリアしたいのですが、キュー全体 (メッセージ) の内容だけを削除したくはありません。

4

6 に答える 6

51

明確にするために、前の2つの回答(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
于 2013-10-10T19:50:32.253 に答える
23

このようなものが動作するはずです:

while(1=1)
begin
    waitfor (
        receive top(1)
        conversation_group_id
        from dbo.yourQueue
    ), timeout 1000;

    if (@@rowcount = 0)
        break;
end
于 2012-05-31T14:35:21.240 に答える
8

ステートメントを使用して、会話を終了 します (これにより、すべての関連メッセージがすべてのキューから削除されます)。

End Converstation @c With CleanUp

メッセージを受信しただけの場合は、会話を開いたままにします。End Conversation With CleanUp は、特定の状況専用です。

于 2012-06-04T14:30:52.090 に答える
-2
while(1=1)
begin
    waitfor (
        receive top(1)
        conversation_group_id
        from kartokumaqueue2), timeout 1000;

        if(@@ROWCOUNT = 0) break;
end
于 2015-12-10T12:14:15.573 に答える