Sql 如何在Access中运行多重更新?
我想在Access中运行大约100.000行更新(请参见下面的模板) 运行脚本时,将显示以下错误消息 在SQL语句结束后找到的字符 微软对这个问题的官方回答没有那么大帮助: 在SQL语句中使用分号(;)后输入了数据。例如,“SELECT*fromtable1;garbage”将生成此错误。要防止此错误,请删除分号(;)后面的所有字符 如何解决此问题?创建一个包含旧值(OldValue)和新值(NewValue)的表(UpdateTable),然后通过join进行更新Sql 如何在Access中运行多重更新?,sql,ms-access,syntax,sql-update,Sql,Ms Access,Syntax,Sql Update,我想在Access中运行大约100.000行更新(请参见下面的模板) 运行脚本时,将显示以下错误消息 在SQL语句结束后找到的字符 微软对这个问题的官方回答没有那么大帮助: 在SQL语句中使用分号(;)后输入了数据。例如,“SELECT*fromtable1;garbage”将生成此错误。要防止此错误,请删除分号(;)后面的所有字符 如何解决此问题?创建一个包含旧值(OldValue)和新值(NewValue)的表(UpdateTable),然后通过join进行更新 Update T set T
Update T
set T.GL = X.NewValue
from Entries T
inner join UpdateTable X
on X.OldValue = T.GL
或在访问中:
UPDATE Entries
INNER JOIN (UpdateTable
ON Entries.GL = UpdateTable.OldValue)
SET Entries.GL = UpdateTable.NewValue
一次运行一个更新。我需要运行大约100000行。这是一个。您应该调整更新行的方式。您不是手动生成此查询,因此应该调整生成查询的程序。在Access中,查询的最大长度约为65.000个字符,不足以为100.000行编写update语句。请询问实际问题,而不是你永远无法解决的解决方案。为什么这段代码不能处理500行?@blackcornail可能是因为你将它作为一个查询执行。Access不支持一次运行多个语句,如果您将它作为一个语句执行,它将不起作用。@ErikvonAsmuth很好的一点,我已经有一段时间没有访问了
UPDATE Entries
INNER JOIN (UpdateTable
ON Entries.GL = UpdateTable.OldValue)
SET Entries.GL = UpdateTable.NewValue