无法从SQL Server中的另一个表更新列

时间:2018-05-06 14:43:11

标签: sql-server

我正在尝试使用SQL Server中unitcost表的[Order Details]列中的值更新unitcost表的Products列。

这是我的SQL查询:

UPDATE dbo.[Order Details]
SET dbo.[Order Details].UnitCost = dbo.Products.UnitCost
FROM dbo.[Order Details]
INNER JOIN dbo.Products ON dbo.[Order Details].ProductID = dbo.Products.ProductID

我收到错误:

  

'dbo'附近的语法不正确,期待“(”

这是指dbo SET dbo.[Order Details].UnitCost

1 个答案:

答案 0 :(得分:2)

JOIN内使用UPDATE时,我建议您始终使用表别名来清楚说明。此外,由于UPDATE实际上只能应用于一个表,因此无需在列中使用该别名。

试试这个:

UPDATE od
SET UnitCost = p.UnitCost
FROM dbo.[Order Details] od
INNER JOIN dbo.Products p ON od.ProductID = p.ProductID