This is dooable, although you may not get the results you expect...
First, always remember that SQL is inherently UNORDERED. This means that there is no such thing as the 'top' rows, unless you explicitly define what you mean. Otherwise, your results are 'random' (sortof).
Regardless, this is dooable, presuming you have some sort of unique key on the table:
UPDATE table1 SET field1 = 1
WHERE table1Key IN (SELECT table1Key
FROM table1
WHERE field1 <> 1
ORDER BY field1
FETCH FIRST 100 ROWS ONLY)
Why do you only want to update 100 rows at a time? What sort of problem are you really trying to solve?
TOP x
is not in the SQL standard, it's an extension unique to MS SQL Server (and probably Sybase).FETCH FIRST x ROWS
was introduced in SQL:2008