Как обновить столбец данными из другой таблицы?- SQL Server 12.0.5 - PullRequest
1 голос
/ 07 июня 2019

Я пытаюсь обновить столбец «эффективность» в таблице «SUS_WK» данными из столбца «custom_number_8» из таблицы «SC_PROD».Но я хочу, чтобы он обновлялся только при соблюдении определенных требований, например, «ID» из таблицы «SUS_WK» совпадает с «ID» из таблицы «SC_PROD».

Как я могу это сделать?

Я попытался сделать это:

    UPDATE SUS_WK
    SET efficiency = SC_PROD.custom_number_8
    FROM SUS_WK t
        JOIN SC_PROD p
        ON t.id = p.id

Когда я попробовал код выше, я получаю следующую ошибку:

Идентификатор из нескольких частей "SC_PROD_PLAN_PLND.custom_number_8 "не может быть привязан.

Но я ожидаю, что результат этого кода обновит столбец« эффективность »в« SUS_WK »с данными из столбца« custom_number_8 »в таблице« SC_PROD ».

1 Ответ

1 голос
/ 07 июня 2019

Вы на правильном пути. Просто используйте псевдоним таблицы, а не имя таблицы:

UPDATE t
    SET efficiency = p.custom_number_8
    FROM SUS_WK t JOIN
          SC_PROD p
          ON t.id = p.id;

Я настоятельно рекомендую использовать псевдоним таблицы для UPDATE. SQL Server разрешит имя таблицы, совпадающее с t, но в зависимости от этого запрос будет довольно сложно расшифровать (поскольку ссылки на одну и ту же таблицу имеют псевдонимы различий).

...