我試圖用另一個表中的值更新一個表中的所有記錄。訪問數據庫從另一個表中更新一個表的值
我已經試過了相同的基本查詢的許多版本,總是得到同樣的錯誤消息:
操作必須使用一個可更新 查詢。
有關爲什麼此查詢無法在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