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

2019-07-17 15:10发布

被一个问题困扰了很久,我想更新数据库中名为“到期”这一列,一开始用“UPDATE 库存记录 SET 到期='30/20'WHERE 编号='KAMK002'   ”这个命令,利用循环,每次循环不断的修改列的数值,结果由于数据库行数太多,导致客户端工作过多的错误,不知道如果一定要用这个办法,有什么解决方案吗?
后来我又想,先一次性把“到期”这一列全部计算出来,然后一次性在写入这一列,后来发现没有合适的命令,查了很多资料都没找到,有没有哪位大神能够解答一下啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
浅色棱
1楼-- · 2019-07-17 15:51
求不要沉啊,放张图片上来。
图像 2.png
浅色棱
2楼-- · 2019-07-17 21:11
难道是哪里形容不清楚么,拜托拜托
yq7777777
3楼-- · 2019-07-18 01:06
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
yq7777777
4楼-- · 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
浅色棱
5楼-- · 2019-07-18 05:40
 精彩回答 2  元偷偷看……
jhon1980
6楼-- · 2019-07-18 08:34
条件直接用“有效期”列

一周热门 更多>