С EXISTS:
update t
set tid = 3
from tp t
where exists (
select 1 from tp
where tpid <> t.tpid and pid = t.pid
)
Полагаю, что tpid
уникально в вашей таблице.Смотрите демо .Если вы хотите обновить только все дублированные строки, кроме первой, то:
update t
set tid = 3
from tp t
where exists (
select 1 from tp
where tpid < t.tpid and pid = t.pid
)
См. demo .