Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server:AKTUALISIEREN Sie eine Tabelle mit ORDER BY

Nein.

Kein dokumentierter 100% unterstützter Weg. Es gibt einen Ansatz, der manchmal verwendet wird, um laufende Summen zu berechnen, der als "skurrile Aktualisierung" bezeichnet wird und darauf hindeutet, dass er in der Reihenfolge des gruppierten Index aktualisiert werden könnte, wenn bestimmte Bedingungen erfüllt sind, aber soweit ich weiß, beruht dies vollständig auf empirischen Beobachtungen und nicht auf einer Garantie.

Aber welche Version von SQL Server verwenden Sie? Wenn Sie SQL2005+ verwenden, können Sie möglicherweise etwas mit row_number tun und einen CTE (Sie können den CTE aktualisieren)

With cte As
(
SELECT id,Number,
ROW_NUMBER() OVER (ORDER BY id DESC) AS RN
FROM Test
)
UPDATE cte SET Number=RN