I\'m using the UPDLOCK and READPAST sql hints in a stored procedure in order to implement a sort of a table queue (I say a sort because I select top 1500 instead of a top 1,
Here is how you use tables as queues: SQL Server Process Queue Race Condition
Summary: you're missing ROWLOCK (which will use more resources in this case)