我试图用另一个表中的值更新一个表中的所有记录。访问数据库从另一个表中更新一个表的值
我已经试过了相同的基本查询的许多版本,总是得到同样的错误消息:
操作必须使用一个可更新 查询。
有关为什么此查询无法在Access数据库中工作的任何想法?
UPDATE inventoryDetails as idet
SET idet.itemDesc =
(
SELECT bomItemDesc
FROM BOM_TEMPLATES as bt
WHERE bt.bomModelNumber = idet.modelNumber
)
也试过这个,因为我意识到,因为第二台有多个型号记录每个modelnumber - 我只需要从发现每个型号的第一个记录的第一个描述。
UPDATE inventoryDetails as idet
SET idet.item_desc =
(
SELECT TOP 1 bomItemDescription
FROM BOM_TEMPLATES as bt
WHERE bt.bomModelNumber = idet.modelNumber
)
...仍然得到同样的错误,但。
加入一定和比访问/喷气子查询的起点更好,因为他们是更好的优化(虽然很多子查询优化良好的 - 只是并非所有类型的人)。 – 2009-04-24 20:04:18
失败消息“操作必须使用可更新的查询”可能听起来有点奇怪;我的意思是,(子)查询不是正在更新的部分,对吧?您需要了解的是,在Access中,所有SQL DML都被称为“查询”,例如你会得到一些民间的说法,当他们引用更新的SQL *语句*时,会看到“更新查询”等矛盾。 – onedaywhen 2009-04-27 13:07:26
......并且这样的人不是真的有错:Access文档通过在整个例子中使用这样的术语来鼓励这一点。 'append query'表示INSERT INTO * statement *。 – onedaywhen 2009-04-27 13:10:31