sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server, usando una tabla como cola

La única forma de lograr una eliminación de la cola de bloqueo sin agrupación es WAITFOR (RECEIVE) . Lo que implica colas de Service Broker, con toda la sobrecarga adicional.

Si está utilizando tablas ordinarias como colas no podrá lograr el bloqueo sin sondeo. Debe sondear la cola solicitando una operación de eliminación de la cola y, si no devuelve nada, suspender e intentar nuevamente más tarde.

Me temo que voy a estar en desacuerdo con Andomar aquí:si bien su respuesta funciona como una pregunta genérica '¿hay filas en la tabla?' cuando se trata de poner en cola, debido a la naturaleza ocupada de la superposición de poner y quitar filas, verificar filas como esta es un punto muerto (casi) garantizado bajo carga. Cuando se trata de usar tablas como cola, uno siempre debe ceñirse a las operaciones básicas de poner/quitar cola y no intentar cosas complicadas.