Dies ist dooable, obwohl Sie nicht die Ergebnisse, die Sie erwarten bekommen kann ...
Zuerst immer daran erinnern, dass SQL UNORDERED von Natur aus ist. Dies bedeutet, dass es keine solche Sache als die "obersten" Zeilen gibt, es sei denn, Sie definieren explizit, was Sie meinen. Ansonsten sind Ihre Ergebnisse "zufällig" (sortof). Unabhängig
, diese ist dooable, vorausgesetzt, Sie irgendeine Art von eindeutigen Schlüssel auf dem Tisch haben:
UPDATE table1 SET field1 = 1
WHERE table1Key IN (SELECT table1Key
FROM table1
WHERE field1 <> 1
ORDER BY field1
FETCH FIRST 100 ROWS ONLY)
Warum tun Sie nur 100 Zeilen zu einer Zeit, aktualisieren? Was für ein Problem versuchen Sie wirklich zu lösen?
'TOP x' ist nicht in dem SQL-Standard, es ist eine Erweiterung einzigartig für MS SQL Server (und wahrscheinlich Sybase). [FETCH FIRST x ROWS] (http://en.wikipedia.org/wiki/Select_ (SQL) #FETCH_FIRST_clause) wurde in SQL eingeführt: 2008 – bhamby