Ich muss die ersten N Zeilen in einer Tabelle aktualisieren, die eine Bedingung erfüllt.
Ich weiß, ich kann ein Update Top N machen ... aber das Problem ist, dass N in einer @ Variable ist.
UPDATE TOP @N SET ... funktioniert nicht.
Gibt es eine Möglichkeit, dies zu tun, die ich gerade vermisse?
Keine spezifischen Tabellendefinitionen hier, weil es keine Rolle spielt, was die Spalten sind. Wenn ich es für eine Tabelle mit einer Spalte machen kann, kann ich es für meine Tabelle tun.
Sie müssen parens nach TOP
-Klausel verwenden, wenn Sie eine Variable verwenden möchten:
UPDATE TOP (@r)
funktioniert, aber es aktualisiert alle @r
rows in keiner bestimmten Reihenfolge .
Aus der Dokumentation :
Die Zeilen, auf die im
TOP
-Ausdruck verwiesen wird, der mitINSERT
,UPDATE
oderDELETE
verwendet wird, sind nicht in einer Reihenfolge angeordnet.TOP n
gibtn
zufällige Zeilen zurück.
Tags und Links sql sql-server sql-server-2005