Для H2 есть два варианта. Первый будет работать для всех баз данных:
update tlegacy lca set
lca.pr_dato = (select ca.calc_holdings_date ... from tca ca where ...)
where lca.id in (select ca.id from tca where ...)
Второй вариант - использование нестандартного оператора MERGE . Он вставит новые строки, если строки с этим ключом еще не существует.
merge into tlegacy(pr_dato) key(id)
select ca.calc_holdings_date, ca.id from tca ca where ...
and exists (select * from tlegacy where ...)