Может быть лучше для sql2005 + использовать:
DELETE TOP (1000)
FROM [MyTab]
WHERE YourConditions
Для Sql2000:
DELETE FROM [MyTab]
WHERE YourIdField IN
(
SELECT TOP 1000
YourIdField
FROM [MyTab]
WHERE YourConditions
)
НО
Если вы хотите удалить специфическое подмножество строк вместо произвольного подмножества, вы должны явно указать порядок подзапроса:
DELETE FROM [MyTab]
WHERE YourIdField IN
(
SELECT TOP 1000
YourIdField
FROM [MyTab]
WHERE YourConditions
ORDER BY ExplicitSortOrder
)
Спасибо tp @gbn за упоминание и требование более ясного и точного ответа.