У вас правильный синтаксис, поэтому до тех пор, пока в этой таблице есть данные, я не уверен, почему она вернет 0 результатов.
Что касается сгенерированного SQL, MSSQL Server не поддерживает команды LIMIT и OFFSET, поэтому подкачка не может быть реализована таким способом на сервере. (Нет. Насколько я понимаю, в SQL Server 2005 улучшены методы разбиения на страницы, но он по-прежнему не поддерживает LIMIT или OFFSET). Таким образом, в SQL 2000 необходимо извлечь все строки и затем выбрать подмножество из этого набора результатов.
Единственное, что я могу предложить, это проверить, что ваш запрос находится в отдельной транзакции. Я видел сообщения, которые предполагают, что это может помочь. В этом может быть что-то, потому что мои модульные тесты с SetFirstResult / SetMaxResults успешны.