2 Stimmen

Wie aktualisiere ich die TOP 5 mit einer Unterauswahl?

Ich war überrascht zu sehen, dass die folgenden 34 Zeilen aktualisiert wurden...nicht 5:

UPDATE 
 Message
 SET StatusRawCode = 25
WHERE StatusRawCode in
  ( 
     Select TOP 5 
      M2.StatusRawCode
       From Message as M2
        Where M2.StatusRawCode = 5
  ) 

Irgendwelche Ideen, wie man das in die richtige Form bringen kann?

Ich danke Ihnen!

0voto

Shannon Severance Punkte 17213

Wenn Sie keinen Primärschlüssel haben und keine CTEs verfügbar sind, funktioniert auch Folgendes:

UPDATE M
SET StatusRawCode = 25
FROM (Select TOP 5 
    M2.StatusRawCode
    FROM Message as M2
    WHERE M2.StatusRawCode = 5
    ORDER BY ...) M

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X