Kenneth Fisher shows that deleting the top N records with an ORDER BY
clause is not straightforward:
Did you know you can’t do this?
DELETE TOP (10) FROM SalesOrderDetail ORDER BY SalesOrderID DESC;Msg 156, Level 15, State 1, Line 8
Incorrect syntax near the keyword ‘ORDER’.I didn’t. Until I tried it anyway. Turns out, it says so right in the limitations section of BOL. Fortunately, that same section does have a recommendation on how to move forward.
Read on for a couple of methods to do this.