BEGIN TRANSACTION;
SELECT TOP 1
OrderID,
CustomerID,
OrderDate,
ShippedDate,
ShipVia
FROM Orders WITH (READPAST) -- Crucial: Skips rows locked by others
WHERE ShippedDate IS NULL
ORDER BY OrderDate ASC; -- Pick the oldest unshipped
ROLLBACK TRANSACTION
var (sql1, parameters1) = new SqlQueryBuilder()
.Select().Top(1)
.Columns("OrderID","CustomerID","OrderDate","ShippedDate","ShipVia")
.From("Orders", new List<IHint>() { new READPAST() })
.Where(new Where(new IS_NULL(new Column("ShippedDate"))))
.OrderBy(new OrderBy().SetColumnAscending("OrderDate"))
.Build();
SELECT TOP 1 OrderID,
CustomerID,
OrderDate,
ShippedDate,
ShipVia
FROM Orders WITH (READPAST)
WHERE ShippedDate IS NULL
ORDER BY OrderDate ASC;