If i say without loop, i can use GOTO
statement for delete large amount of records using sql server.
exa.
IsRepeat:
DELETE TOP (10000)
FROM <TableName>
IF @@ROWCOUNT > 0
GOTO IsRepeat
like this way you can delete large amount of data with smaller size of delete.
let me know if requires more information.