id без автоинкремент
Есть таблица в ms sql, назовем ее content, есть 3 столбца (id, com1, com2), в таблице не подключен автоинкремент и не будет подключен. В результате добавление и удаления строк появилась необходимость заново пронумеровать все строки, то есть присвоить id 1,2,3,4...и т.д. не подключая автоинкремент. Есть ли возможность это сделать запросом ms sql?
Ответы (2 шт):
Автор решения: Sergey Moiseenko
→ Ссылка
Можете создать последовательность (https://sql-ex.ru/blogs/?/ModernizaciJa_vashego_koda_T-SQL_obekt_Sequence.html):
CREATE sequence seq1 start
WITH 1 increment BY 1;
а потом обновить:
update content set id= NEXT value FOR seq1;
Автор решения: PashaPash
→ Ссылка
Пронумеруйте на основе старых id и сделайте апдейт на основе селекта:
update x
set id = new_id
from (
select id, ROW_NUMBER() over (order by id) AS new_id from content
) x