如何用另一个表中的数据更新列? -SQL Server 12.0.5

时间:2019-06-07 15:48:22

标签: sql sql-server database sql-server-2012

我正在尝试使用表“ SC_PROD”中“ custom_number_8”列中的数据更新表“ SUS_WK”中的“效率”列。但是我只希望它在满足某些要求的情况下进行更新,例如表“ SUS_WK”中的“ ID”与表“ SC_PROD”中的“ ID”相匹配。

我该怎么做?

我尝试这样做:

    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”。

但是我希望该代码的结果能够使用表“ SC_PROD”中的“ custom_number_8”列中的数据来更新“ SUS_WK”中的“ efficiency”列。

1 个答案:

答案 0 :(得分:1)

您处在正确的轨道上。只需使用表别名而不是表名即可:

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相同-但这取决于查询,使得该查询很难解密(因为对同一表的引用具有不同的别名)。