Étant donné que l'ID utilisateur est le même dans toutes les lignes, vous obtenez la même valeur pour l'âge.
Ce problème peut être résolu à l'aide d'un CTE
, comme ceci :
;with cte as
(
select id, userid, age, ROW_NUMBER() OVER(order by id) rn
FROM #tempMock
)
UPDATE t1
SET t1.age = t2.age
FROM #temp t1
INNER JOIN cte t2 ON t1.userid = t2.userid and t1.id = t2.rn+1;