Поскольку синтаксис требует скобок:
DECLARE @cnt INTEGER = 0;
Declare @cnt_total int ;
Set @cnt_total = 5
WHILE (@cnt < @cnt_total)
BEGIN
SET @cnt = @cnt + 1;
Select top (@cnt) * from FOCUSCDR.PATIENTDXHISTORY
END;
Edit:
Как уже упоминалось в комментарии @Tim Biegeleisen, вы должны использовать ORDER BY, иначе использование TOP не имеет смысла, так как порядок не будет гарантирован, и вы можете получить несогласованные результаты. Проверьте эту статью для получения дополнительной информации об этом.