Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Aktualisieren Sie ein Feld einer vorhandenen Tabelle mit Auto-Increment-Logik

Was Sie tun möchten, ist, die Datensätze innerhalb von Partitionen zu sortieren. Die Abfrage, um zu tun, was Sie wollen, ist dies :

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