WITH-Konstrukte sind nur Vereinfachungen bei der Verwendung von "derived Tables".
Man kann also
select * from (Select * from MyFile) x
inner join (Select * from Myfile2) y on x.Key = y.Key
verwenden.
Somit kann man eben auch bei Update/delete in der Where-Klausel mit scalaren Subselects umgehen:
update/delete .... MyFile x
where exists (
select * from (select * from MyFile) a inner join (select * from MyFile2) b on ...
where x.Key = a.Key ...
)

Beim Insert sieht es nicht viel anders aus:
insert into MyFileX
select ....