Похоже, он должен работать правильно. Я бы выполнил следующий запрос:
SELECT Firmen.State,Postleitzahlen.State
FROM
Postleitzahlen
INNER JOIN
Firmen ON Postleitzahlen.ZipCode = Firmen.ZipCode
WHERE
(
Firmen.State = ''
OR Firmen.State IS NULL )
Посмотри, что тебе это даст. Если вы получаете результаты со значениями в обоих столбцах, то у вас, вероятно, другая проблема. Однако я предполагаю, что один из столбцов является пустым или пустым, поскольку вы обновляете строки, но ничего не меняется.
Тогда в вашем запросе не должно быть ничего плохого. Я думаю, что это может быть с вашим обновлением тогда. Попробуйте сделать таблицу псевдонимом, например так:
UPDATE
F
SET
F.State = Postleitzahlen.State
FROM
Postleitzahlen
INNER JOIN
Firmen F ON Postleitzahlen.ZipCode = F.ZipCode
WHERE
(
F.State = ''
OR F.State IS NULL )