0

我正在尝试使用更新查询,但到目前为止它一直在我身上失败,我不明白我在这里做错了什么。我收到此错误“更新已取消:尝试使用来自多个连接行的值更新目标行”。我知道名为 OTHER_TABLE 的表有重复记录。这是我当前的查询:

UPDATE MAINTABLE
         SET BLDG_NBR = DM.BLDG_NBR
         FROM OTHER_TABLE DM
         WHERE  MAINTABLE.BLDG_NM = DM.BLDG_NM
4

1 回答 1

0

你需要加入这两个表

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);
于 2013-09-24T20:55:32.710 回答