For those wondering why you can't do
DELETE TOP (30) FROM table ORDER BY column
, the answer is
"The rows referenced in the TOP expression used with INSERT, UPDATE, MERGE, or DELETE are not arranged in any order."
For a specific ordering criteria deleting from a CTE or similar table expression is the most efficient way.
;WITH CTE AS
(
SELECT TOP 30 *
FROM [My_Table]
ORDER BY a1
)
DELETE FROM CTE
No comments:
Post a Comment