MS Access自引用更新表时触发“Operation must use an updateable query”报错
解决Access自引用更新查询的"Operation must use an updateable query"报错
需求:扫描Base表并更新该表,统计相同cdKey的重复条目数量,将统计结果写入ctReferences字段。
最初尝试的UPDATE语句:
UPDATE Base AS TAR INNER JOIN (select cdKey, count(*) as ct FROM Base GROUP BY cdKey) AS CHK ON TAR.cdKey = CHK.cdKey SET ctReferences = CHK.ct
执行后触发报错:Operation must use an updateable query
尝试过添加DISTINCTROW、将子查询创建为视图等方法,均无法解决报错。
可行解决方案
先通过SELECT INTO语句生成临时表存储统计结果:
SELECT cdKey, count(*) INTO TEMP FROM Base GROUP BY cdKey
再通过临时表关联原表执行更新操作,即可成功完成字段更新。
结论
Access中直接使用自引用的聚合查询进行更新操作时,查询会被判定为不可更新,必须借助临时表中转统计结果才能完成更新。
内容的提问来源于stack exchange,提问作者Eric Hofer
相关产品推荐
相关产品推荐

