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