;WITH x AS (SELECT ID, OrderValues,
rn = ROW_NUMBER() OVER (ORDER BY ID)
FROM dbo.tablename
)
UPDATE x SET OrderValues = rn;
Однако, с какой стати вы хотите это сделать, когда вы можете получить эту информацию, используя функцию ROW_NUMBER()
во время запроса? Сохранение значений означает, что они гарантированно устаревают и не синхронизируются в тот момент, когда вы вставляете / обновляете / удаляете одну строку в таблице. Поэтому, если вы не планируете запускать это обновление после каждой операции DML (например, с использованием триггера), что для меня не очень логично, вам, вероятно, будет гораздо лучше получить эти значения row_number при запуске запроса, чем сохранять их в таблица.