Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Soms kan het nodig zijn om de inhoud van een wachtrij als geheel te inspecteren. Mogelijk wilt u weten hoeveel berichten de wachtrij bevat of wilt u ervoor zorgen dat de toepassing alle berichten heeft verwerkt voor een service die u offline wilt halen. Mogelijk moet u erachter komen waarom berichten niet worden verwerkt door een toepassing.
Als u deze informatie wilt ophalen, gebruikt u de naam van de wachtrij als de brontabel van een SELECT instructie. Een SELECT instructie in een wachtrij heeft dezelfde indeling als een SELECT instructie in een weergave of een tabel.
Opmerking
Service Broker is ontworpen om meerdere wachtrijlezers in staat te stellen berichten van een wachtrij efficiƫnt te ontvangen. Echter, een SELECT instructie in een wachtrij kan blokkeren. Wanneer u een SELECT instructie in een wachtrij gebruikt, geeft u de NOLOCK hint op om te voorkomen dat toepassingen die gebruikmaken van de wachtrij blokkeren. Zie CREATE QUEUE voor een beschrijving van de kolommen in een wachtrij.
Hieronder volgt een voorbeeldinstructie SELECT om het aantal berichten in de wachtrij ExpenseQueue te achterhalen:
SELECT COUNT(*)
FROM dbo.ExpenseQueue WITH (NOLOCK);
Met de volgende SELECT instructie kan de beheerder leren of de wachtrij ExpenseQueue berichten bevat voor de service Adventure-Works.com/AccountsPayable/Expenses:
IF EXISTS (SELECT *
FROM dbo.ExpenseQueue WITH (NOLOCK)
WHERE service_name = '//Adventure-Works.com/AccountsPayable/Expenses')
PRINT 'The queue contains messages for ' + '//Adventure-Works.com/AccountsPayable/Expenses';
ELSE
PRINT 'The queue does not contain messages for ' + '//Adventure-Works.com/AccountsPayable/Expenses';
Service Broker beheert updates voor wachtrijen. Hoewel de naam van een wachtrij kan worden gebruikt in plaats van een tabelnaam in een SELECT instructie, kan een wachtrij niet het doel zijn van een INSERT, UPDATEof DELETETRUNCATE instructie. Met SQL Server kunnen gebruikers geen indexen maken in wachtrijen.
Verwante inhoud
- SELECT (Transact-SQL)
- Wachtrijen
- Bewaarperiode van berichten