Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server :MISE À JOUR d'une table à l'aide de ORDER BY

Non.

Pas une méthode documentée à 100% prise en charge. Il existe une approche parfois utilisée pour calculer les totaux cumulés appelée "mise à jour originale" qui suggère qu'elle pourrait être mise à jour dans l'ordre de l'index groupé si certaines conditions sont remplies, mais pour autant que je sache, cela repose entièrement sur l'observation empirique plutôt que sur une quelconque garantie.

Mais sur quelle version de SQL Server êtes-vous ? Si SQL2005+, vous pourrez peut-être faire quelque chose avec row_number et un CTE (Vous pouvez mettre à jour le CTE)

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