sql >> Database >  >> RDS >> Sqlserver

SQL Server:UPDATE een tabel met ORDER BY

Nee.

Geen gedocumenteerde 100% ondersteunde manier. Er is een benadering die soms wordt gebruikt voor het berekenen van lopende totalen, de zogenaamde "eigenzinnige update", die suggereert dat deze zou kunnen worden bijgewerkt in de volgorde van de geclusterde index als aan bepaalde voorwaarden wordt voldaan, maar voor zover ik weet is dit volledig afhankelijk van empirische observatie in plaats van enige garantie.

Maar welke versie van SQL Server gebruik je? Als SQL2005+ zou je misschien iets kunnen doen met row_number en een CTE (u kunt de CTE bijwerken)

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


  1. Een CLOB-kolom opvragen in Oracle

  2. Is het beter om veel sql-opdrachten met één verbinding uit te voeren, of elke keer opnieuw verbinding te maken?

  3. 4 manieren om te controleren op dubbele rijen in SQL Server

  4. Hoe u alle schendingen van beperkingen in een SQL Server-database kunt vinden