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