Как сказал Дэн, но в MS SQL Server мне кажется, что этот стиль легче читать:
UPDATE U
SET U.field1 = V.bus
FROM table1 AS U
JOIN view1 AS V
ON V.document = U.document
Обратите внимание, что если VIEW1 может иметь несколько строк для данного значения [DOCUMENT] строки TABLE1, то значение [BUS], выбранное для обновления TABLE1, будет случайным, в пределах соответствующего набора. (В этом случае запрос можно изменить, выбрав MAX / MIN / и т. Д.)
Я бы уточнил этот запрос, чтобы НЕ обновлять строки, которые уже соответствуют значению BUS, что ускорит его при повторном запуске и, следовательно, некоторые значения уже существуют в TABLE1
UPDATE U
SET U.field1 = V.bus
FROM table1 AS U
JOIN view1 AS V
ON V.document = U.document
WHERE U.field1 = V.bus
OR (U.field1 IS NOT NULL AND V.bus IS NULL)
OR (U.field1 IS NULL AND V.bus IS NOT NULL)
вы можете пропустить тесты NULL / NOT NULL, если поле определено как не допускающее NULL.