Colas de consultas

Se aplica a:SQL ServerAzure SQL Managed Instance

A veces puede ser necesario inspeccionar el contenido de una cola en su conjunto. Es posible que quiera saber cuántos mensajes contiene la cola, o puede que quiera asegurarse de que la aplicación ha procesado todos los mensajes de un servicio que está a punto de desconectar. Es posible que tenga que averiguar por qué una aplicación no procesa los mensajes.

Para obtener esta información, use el nombre de la cola como tabla de origen en una instrucción SELECT. Una SELECT instrucción en una cola tiene el mismo formato que una SELECT instrucción en una vista o una tabla.

Nota

Service Broker está diseñado para permitir que varios lectores de cola reciban mensajes eficazmente desde una cola. Sin embargo, una SELECT declaración en una cola podría provocar un bloqueo. Al usar una SELECT instrucción en una cola, especifique la NOLOCK indicación para evitar el bloqueo de aplicaciones que usan la cola. Para obtener una descripción de las columnas de una cola, consulte CREATE QUEUE.

A continuación se muestra una instrucción de ejemplo SELECT para averiguar el número de mensajes de la cola ExpenseQueue:

SELECT COUNT(*)
FROM dbo.ExpenseQueue WITH (NOLOCK);

La siguiente SELECT instrucción permite al administrador saber si la cola ExpenseQueue contiene mensajes para el servicio 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 administra las actualizaciones de las colas. Aunque el nombre de una cola se puede usar en lugar de un nombre de tabla en una instrucción SELECT, una cola no puede ser el destino de una instrucción INSERT, UPDATE, DELETE o TRUNCATE. SQL Server no permite a los usuarios crear índices en colas.