Использование функций OVER должно работать:
Примеры запросов:
select id,code,value,rank() over (partition by code order by id asc) rank_
from dbo.table1;
select code,value,dense_rank() over (partition by code order by code,value asc) rank_ from dbo.table2;
Обновление статуса:
UPDATE t
SET t1.value = t2.value
FROM (select id,code,value,rank() over (partition by code order by id asc) rank_ from dbo.table1) t1
inner join ( select code,value,dense_rank() over (partition by code order by code,value asc) rank_ from dbo.table2 ) t2
on t1.code = t2.code and t1.rank_ = t2.rank_