SET NOCOUNT ON
USE tempdb
DECLARE @MyQueue TABLE
(
msgid INT NOT NULL PRIMARY KEY,
msgdata VARCHAR(15) NOT NULL
)
WHILE 1 = 1
BEGIN
BEGIN TRAN
WAITFOR
(
DELETE FROM MsgQueue WITH (READPAST)
OUTPUT DELETED.* INTO @MyQueue
)
PRINT 'Processing messages ...'
SELECT * FROM @MyQueue
-- Message processing goes here
DELETE FROM @MyQueue
COMMIT TRAN
END