我正在尝试使用更新查询,但到目前为止它一直在我身上失败,我不明白我在这里做错了什么。我收到此错误“更新已取消:尝试使用来自多个连接行的值更新目标行”。我知道名为 OTHER_TABLE 的表有重复记录。这是我当前的查询:
UPDATE MAINTABLE
SET BLDG_NBR = DM.BLDG_NBR
FROM OTHER_TABLE DM
WHERE MAINTABLE.BLDG_NM = DM.BLDG_NM
我正在尝试使用更新查询,但到目前为止它一直在我身上失败,我不明白我在这里做错了什么。我收到此错误“更新已取消:尝试使用来自多个连接行的值更新目标行”。我知道名为 OTHER_TABLE 的表有重复记录。这是我当前的查询:
UPDATE MAINTABLE
SET BLDG_NBR = DM.BLDG_NBR
FROM OTHER_TABLE DM
WHERE MAINTABLE.BLDG_NM = DM.BLDG_NM
你需要加入这两个表
UPDATE MAINTABLE
SET BLDG_NBR = DM.BLDG_NBR
FROM MAINTABLE INNER JOIN OTHER_TABLE DM
ON MAINTABLE.BLDG_NM = DM.BLDG_NM
根据您的评论,您没有在表上设置索引,因此它执行全表扫描。在执行更新语句之前尝试在两个表上添加索引,
CREATE NONCLUSTERED INDEX MAINTABLE_BLDGNM_idx ON MAINTABLE(BLDG_NM);
CREATE NONCLUSTERED INDEX OTHERTABLE_BLDGNM_idx ON OTHER_TABLE(BLDG_NM);