Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server:AGGIORNA una tabella utilizzando ORDER BY

No.

Non è un modo documentato supportato al 100%. C'è un approccio a volte utilizzato per calcolare i totali parziali chiamato "aggiornamento eccentrico" che suggerisce che potrebbe aggiornarsi in ordine di indice cluster se vengono soddisfatte determinate condizioni, ma per quanto ne so questo si basa completamente sull'osservazione empirica piuttosto che su qualsiasi garanzia.

Ma su quale versione di SQL Server utilizzi? Se SQL2005+ potresti essere in grado di fare qualcosa con row_number e un CTE (puoi aggiornare il CTE)

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