Ich muss die ersten N Zeilen in einer Tabelle aktualisieren, die eine Bedingung erfüllen.Wie aktualisiere ich n Zeilen in einer Tabelle?
Ich weiß, dass ich ein Update Top N machen kann ... 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 Tabellen-Definitionen hier, weil es egal ist, was die Spalten sind .. Wenn ich es für eine Tabelle mit einer Spalte tun kann, kann ich es für meine Tabelle tun.
Cooler Trick! Danke, dass du es mir beigebracht hast. Interessanterweise funktioniert diese Syntax nicht mit dem Konstrukt 'SELECT TOP n'. Ich kann, warum das passieren würde, obwohl es eine seltsame Asymmetrie in TSQL ist. – mjv
'SELECT TOP n' funktioniert nur, wenn' n' eine Konstante ist, keine Variable. Es funktionierte so wie vor 2005. 'TOP' mit einem variablen Argument und' TOP' für DML-Anweisungen wurde seit 2005 hinzugefügt und erfordert Parens. –
Das wäre aber wirklich cool, "update top (@N) set systemuserid = @ID wo systemuserid ist null" gibt mir "Falsche Syntax in der Nähe des Schlüsselwortes 'set'". – Moose