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

Sql server 无法从SQL Server中的另一个表更新列,sql-server,Sql Server,我正在尝试使用SQL Server中产品表的单位成本列中的值更新[订单详细信息]表的单位成本列 这是我的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

我正在尝试使用SQL Server中
产品
表的
单位成本
列中的值更新
[订单详细信息]
表的
单位成本

这是我的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”附近的语法不正确,应为“(”


这是指
SET dbo处的
dbo
。[订单详细信息].UnitCost

当在
更新中使用
连接时,我建议始终使用表别名来澄清问题。此外,由于
更新实际上只能应用于一个表,因此无需在要设置的列中使用该别名

试试这个:

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

UPDATE
中使用
JOIN
时,我建议始终使用表别名来澄清问题。此外,由于
UPDATE
实际上只能应用于一个表,因此无需在要设置的列中使用该别名

试试这个:

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

联接语法看起来正确,这意味着问题出在其他方面。查看是否可以在当前查询中使用准确的
dbo.
语法从每个表中进行选择。这是正确的语法。您还有其他问题。联接语法看起来正确,这意味着问题出在其他方面。查看是否可以从每个表中选择usi在当前查询中使用确切的
dbo.
语法。这是正确的语法。您还有其他事情要做。