sqlserver清空service broker中的隊(duì)列的語句分享
更新時(shí)間:2011年08月28日 22:10:37 作者:
在我們開發(fā)service broker應(yīng)用時(shí)候,可能用于測(cè)試或者客戶端沒有配置正確等導(dǎo)致服務(wù)端隊(duì)列存在很多垃圾隊(duì)列,不便于我們排查錯(cuò)誤,我們可以使用SQL腳本來清空服務(wù)端這些垃圾數(shù)據(jù)
復(fù)制代碼 代碼如下:
USE TestDB
declare @conversation uniqueidentifier
while exists (select 1 from sys.transmission_queue )
begin
set @conversation = (select top 1 conversation_handle from sys.transmission_queue )
end conversation @conversation with cleanup
end
那么客戶端接受到的消息如果沒有處理,也會(huì)積攢在客戶端隊(duì)列中,其實(shí)就相當(dāng)于許多未讀郵件,我們可以使用以下腳本讀取隊(duì)列 ,讀取后隊(duì)列自動(dòng)清空:
復(fù)制代碼 代碼如下:
USE TestDB
DECLARE @RecvReplyMsg NVARCHAR(100) ;
DECLARE @RecvReplyDlgHandle UNIQUEIDENTIFIER ;
BEGIN TRANSACTION ;
WHILE ( 1 = 1 )
BEGIN
WAITFOR
( RECEIVE TOP(1)
@RecvReplyDlgHandle = conversation_handle,
@RecvReplyMsg = message_body
FROM dbo.Test_TargetQueue
), TIMEOUT 1000 ;
END CONVERSATION @RecvReplyDlgHandle ;
SELECT @RecvReplyMsg AS ReceivedReplyMsg ;
END
COMMIT TRANSACTION ;
相關(guān)文章
SqlServer數(shù)據(jù)庫提示 “tempdb” 的日志已滿 問題解決方案
本文主要講述了筆者在執(zhí)行sql語句的過程中,遇到提示“數(shù)據(jù)庫 'tempdb' 的日志已滿。請(qǐng)備份該數(shù)據(jù)庫的事務(wù)日志以釋放一些日志空間?!钡慕鉀Q過程,希望對(duì)大家有所幫助2014-08-08
SqlServer實(shí)現(xiàn)類似Oracle的before觸發(fā)器示例
本節(jié)主要介紹了SqlServer如何實(shí)現(xiàn)類似Oracle的before觸發(fā)器,需要的朋友可以參考下2014-08-08
Sql學(xué)習(xí)第三天——SQL 關(guān)于CTE(公用表達(dá)式)的遞歸查詢使用
公用表表達(dá)式(CTE)具有一個(gè)重要的優(yōu)點(diǎn),那就是能夠引用其自身,從而創(chuàng)建遞歸 CTE接下來詳細(xì)介紹下:CTE 的基本語法結(jié)構(gòu),在使用CTE時(shí)注意事項(xiàng)以及實(shí)例操作2013-03-03
在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因?yàn)樗皇且粋€(gè)真正的值,它僅僅是一個(gè)符號(hào),因?yàn)樗闹凳俏粗摹?/div> 2011-04-04
SQL Server 2016 Alwayson新增功能圖文詳解
sqlserver2016發(fā)布有一段時(shí)間了,下面跟著腳本之家小編一起看看2016在Alwyson上做了哪些改進(jìn)?需要的朋友通過本文了解下吧2017-09-09最新評(píng)論

