sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server:UPPDATERA en tabell genom att använda ORDER BY

Nej.

Inte ett dokumenterat sätt som stöds till 100 %. Det finns ett tillvägagångssätt som ibland används för att beräkna löpande summor som kallas "quirky update" som antyder att det kan uppdateras i klustrade index om vissa villkor är uppfyllda, men så vitt jag vet bygger detta helt på empirisk observation snarare än någon garanti.

Men vilken version av SQL Server använder du? Om SQL2005+ kanske du kan göra något med row_number och en CTE (Du kan uppdatera CTE)

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


  1. Ingen lämplig drivrutin hittades för 'jdbc:mysql://localhost:3306/mysql

  2. Skapa en PostgreSQL-sekvens till ett fält (som inte är postens ID)

  3. Hur kan jag extrahera filer från ett Oracle BLOB-fält?

  4. INFOGA med BESTÄLLNING på Oracle