Questo è dooable, anche se non si può ottenere i risultati che ci si aspetta ...
First, sempre ricordare che SQL è intrinsecamente UNORDERED. Ciò significa che non c'è nessuna di queste cose come le righe 'in alto', a meno che non si definisca esplicitamente cosa intendi. Altrimenti, i risultati sono "casuali" (sortof).
Indipendentemente da ciò, questo è dooable, presumendo di avere una sorta di chiave univoca sul tavolo:
UPDATE table1 SET field1 = 1
WHERE table1Key IN (SELECT table1Key
FROM table1
WHERE field1 <> 1
ORDER BY field1
FETCH FIRST 100 ROWS ONLY)
Perché vuoi aggiornare solo 100 righe alla volta? Che tipo di problema stai davvero cercando di risolvere?
fonte
2012-06-12 16:08:34
'x' TOP non è nello standard SQL, è un'estensione unica per MS SQL Server (e probabilmente Sybase). ['FETCH FIRST x ROWS'] (http://en.wikipedia.org/wiki/Select_ (SQL) #FETCH_FIRST_clause) è stato introdotto in SQL: 2008 – bhamby