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

Aggiorna un campo di una tabella esistente con la logica di incremento automatico

Quello che vuoi fare è ottenere l'ordinamento dei record all'interno delle partizioni. La query per fare quello che vuoi è questa :

WITH sorted AS (
    SELECT id, ROW_NUMBER() OVER(PARTITION BY ProductTypeId ORDER BY id ASC) as rownum
    FROM product
)
UPDATE product
SET [order] = s.rownum
FROM product p
   INNER JOIN sorted s on (p.id = s.id);