您的位置:首页 > 其它

关于批量更新的问题

2008-05-08 15:18 323 查看
Update的实质是先Delete,然后在Insert。
有两个表,可以通过主键关联,如果要把一个表的某个字段,更新到另一个表中的相应记录的字段,以往在写程序的时候,是通过循环,逐一去更新每一条记录,这样做的效率太低了,可以使用批量Update来处理。
例如:
select * from taskmain
taskid tasknu taskprice
001 100 10
002 100 11
003 120 12
004 100 13
005 130 10
006 100 11
008 100 11
100 100 12
101 100 13
120 100 11
131 100 10
select * from taskdetal
detalid detalnm detalprice
001 100 18
002 100 20
003 100 21
004 100 22
005 100 23
006 100 24
007 100 25
008 100 26
009 100 27
010 100 28
011 100 20
100 100 30
101 100 20
要把 taskdetal 的detalprice 更新到 taskmain 表里的taskprice, taskmain的主键为taskid taskdetal的主键为detalid
update taskmain set taskprice = t.detalprice
from taskdetal as t where taskmain.taskid = t.detalid
这样的更新的效率会大大提高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: