SQL Server更新查询使用连接不起作用

时间:2015-08-11 17:47:50

标签: sql-server join

我无法在另一个表上使用以下连接更新表。基本上,TableA在其Name列中有一些空值,我正在尝试从Customer表Name列添加它们,并加入ID列。

UPDATE
    TableA
SET
    TableA.Name = Customer.Name
FROM
    TableA
INNER JOIN
    Customer ON Customer.ID = TableA.ID
WHERE
    TableA.Name <> Customer.Name

我也尝试过最后一行的地方:

TableA.Name = null 

2 个答案:

答案 0 :(得分:1)

UPDATE
    TableA
SET
    TableA.Name = Customer.Name
FROM
    TableA
INNER JOIN
    Customer ON Customer.ID = TableA.ID
WHERE
    TableA.Name is null

您无法对null进行逻辑评估,因此根据您的需要,您必须使用或不使用。

答案 1 :(得分:0)

为什么要有WHERE子句呢?如果您希望名称基于ID相等,请执行以下操作:

UPDATE
    TableA
SET
    TableA.Name = Customer.Name
FROM
    TableA
INNER JOIN
    Customer ON Customer.ID = TableA.ID

或者如果你必须有一个WHERE子句来表现,那应该是这样的:

WHERE TableA.Name IS NULL OR TableA.Name <> Customer.Name