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

SQL Server:OPDATERE en tabel ved at bruge ORDER BY

Nej.

Ikke en dokumenteret 100% understøttet måde. Der er nogle gange en tilgang, der bruges til at beregne løbende totaler, kaldet "quirky update", som antyder, at den muligvis opdateres i rækkefølge efter clustered index, hvis visse betingelser er opfyldt, men så vidt jeg ved, afhænger dette fuldstændigt af empirisk observation snarere end nogen garanti.

Men hvilken version af SQL Server er du på? Hvis SQL2005+ kan du muligvis gøre noget med row_number og en CTE (Du kan opdatere CTE)

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


  1. Sådan optimerer du COUNT(*) ydeevne på InnoDB ved at bruge indeks

  2. Eksport af en PostgreSQL-database med phpPgAdmin

  3. Oracle.DataAccess.Client-afhængigheder

  4. Array i IN() klausul oracle PLSQL