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

Mettre à jour un champ d'une table existante avec la logique d'incrémentation automatique

Ce que vous voulez faire, c'est trier les enregistrements dans les partitions. La requête pour faire ce que vous voulez est la suivante :

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);