Peut-être mieux pour sql2005+ à utiliser :
DELETE TOP (1000)
FROM [MyTab]
WHERE YourConditions
Pour Sql2000 :
DELETE FROM [MyTab]
WHERE YourIdField IN
(
SELECT TOP 1000
YourIdField
FROM [MyTab]
WHERE YourConditions
)
MAIS
Si vous souhaitez supprimer un sous-ensemble spécifique de lignes au lieu d'un sous-ensemble arbitraire, vous devez spécifier explicitement l'ordre de sous-requête :
DELETE FROM [MyTab]
WHERE YourIdField IN
(
SELECT TOP 1000
YourIdField
FROM [MyTab]
WHERE YourConditions
ORDER BY ExplicitSortOrder
)
Merci à tp @gbn d'avoir mentionné et demandé la réponse la plus claire et la plus exacte.