Váš poddotaz vůbec nekoreluje. Identifikátor "TableA.key" v poddotazu odkazuje na tabulku A v klauzuli FROM poddotazu, nikoli na cílovou tabulku aktualizace (což je shodou okolností také na tabulku A). Nechcete aktualizovat TableA.field pomocí výsledné sady spojení dvou tabulek. Jednoduše chcete toto:
UPDATE TableA
SET TableA.field = (SELECT TableB.field
FROM TableB
WHERE TableA.key = TableB.key)