Can you at least answer the question on how to get the middle 500 rows?
select top 500 * from tbl just define half of what's left to be ordered in front of this 500 and the rest behind so this will always be the middle 500 rows. or this might help. http://www.nigelrivett.net/Cursors.html
========================================== Cursors are useful if you don't know sql. DTS can be used in a similar way. Beer is not cold and it isn't fizzy.