如何在Access中运行多重更新?

时间:2018-01-02 14:04:48

标签: sql ms-access syntax sql-update

我想在Access中运行大约100.000行更新(参见模板下方)。

update Entries set GL = '345' where GL = '398965';
update Entries set GL = '546' where GL = '522954';
update Entries set GL = '576' where GL = '556395';
update Entries set GL = '963' where GL = '944485';
update Entries set GL = '334' where GL = '347563';
update Entries set GL = '997' where GL = '978964';

运行时脚本会出现以下错误消息。

  

在SQL语句结束后找到的字符。

微软官方对此问题的回答并没有那么有用:

  

在SQL语句中使用分号(;)后输入数据。例如,“SELECT * FROM table1; garbage”将生成此错误。要防止此错误,请删除分号(;)后面的任何字符。

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

创建一个具有旧值(OldValue)和新值(NewValue)的表(UpdateTable),然后通过join更新

Update T
set T.GL = X.NewValue
from Entries T
inner join UpdateTable X
on X.OldValue = T.GL

或在Access中:

UPDATE Entries 
INNER JOIN (UpdateTable
ON Entries.GL = UpdateTable.OldValue)
SET Entries.GL = UpdateTable.NewValue