That’s close, but it will not do what you need.
INSERT will add new rows to table A, with the Filename column filled, all other columns blank.
You don’t want to INSERT new rows, but to UPDATE existing rows.
There are two ways to do that. The fastest is to build on your existing joined table, but to adjust it so that each row has both the source column from table B that you want to copy from, and the target column from table A that you want to copy to. They must have different names to avoid ambiguity (an alias will do that).
The SELECT should look like
SELECT A.[Filename], B.[Filename] AS [Filename 2]
FROM A INNER JOIN B
ON A.[Key] = B.[Key]
Wrap that SELECT query in (...), then add
before it, and
SET [Filename} = [Filename 2]