ODBC Microsoft Access 驱动程序] 客户端的工作过多

2019-07-17 15:10发布

被一个问题困扰了很久,我想更新数据库中名为“到期”这一列,一开始用“UPDATE 库存记录 SET 到期='30/20'WHERE 编号='KAMK002'   ”这个命令,利用循环,每次循环不断的修改列的数值,结果由于数据库行数太多,导致客户端工作过多的错误,不知道如果一定要用这个办法,有什么解决方案吗?
后来我又想,先一次性把“到期”这一列全部计算出来,然后一次性在写入这一列,后来发现没有合适的命令,查了很多资料都没找到,有没有哪位大神能够解答一下啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
yq7777777
2019-07-18 03:24
1.将一个表中的一批记录更新到另外一个表中
table1
ID f1 f2
table2
ID f1 f2
先要将table2中的f1 f2 更新到table1(相同的ID)
update table1,table2 set table1.f1=table2.f1,table1.f2=table2.f2 where table1.ID=table2.ID
2.将同一个表中的一些记录更新到另外一些记录中
表:a
ID   month   E_ID     Price
1       1           1        2
2       1           2        4
3       2           1         5
4       2           2        5
先要将表中2月份的产品price更新到1月份中
显然,要找到2月份中和1月份中ID相同的E_ID并更新price到1月份中
这个完全可以和上面的方法来处理,不过由于同一表,为了区分两个月份的,应该将表重命名一下
update a,a as b set a.price=b.price where a.E_ID=b.E_ID and a.month=1 and b.month=2

当然,这里也可以先将2月份的查询出来,在用1.的方法去更新

update a,(select * from a where month=2)as b set a.price=b.price where a.E_ID=b.E_ID and a.month=1

一周热门 更多>