首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

大数据量怎么快速更改表的字段值AA.sn=BB.sn,CC.AA_id=AA.id,现在要求把CC.AA_id换成BB.id,请,多谢

2013-08-04 
大数据量如何快速更改表的字段值AA.snBB.sn,CC.AA_idAA.id,现在要求把CC.AA_id换成BB.id,请高手指点,谢

大数据量如何快速更改表的字段值AA.sn=BB.sn,CC.AA_id=AA.id,现在要求把CC.AA_id换成BB.id,请高手指点,谢谢
大数据量如何快速更改表的字段值AA.sn=BB.sn,CC.AA_id=AA.id,现在要求把CC.AA_id换成BB.id,请高手指点,谢谢

我有表AA,字段AA.id,AA.sn,AA.name,AA.other
表BB,字段BB.id,AA.sn,BB.name,BB.other
表CC,字段CC.id,CC.AA_id,CC.info

其中AA.sn=BB.sn,CC.AA_id=AA.id,

现在要求把CC.AA_id换成BB.id,即CC_.AA_id=BB.id,请高手指点,如何能够快速把CC.AA_id换成BB的id

因为数据量较大,数据量在200万条左右,有时执行到一半就超时了,请高手指点,谢谢!! 请各路高手指点~.~
[解决办法]
大数据量,建议采用分批次更新
[解决办法]
200万不是很大啊,楼主是怎么更换的呢
[解决办法]

引用:
可以提供在数据库中执行的代码吗,我是用其它程序编写sql语句的,感觉执行效率低

代码呢?快点贴出来呀
[解决办法]
引用:
update cc2 set aa_id=(select id from aa where aa.sn=bb.sn)

执行下面的,然后把执行计划发出看看,另外,你是用什么程序?

set statistics profile on
Go
update cc2 set aa_id=(select id from aa where aa.sn=bb.sn) 


[解决办法]
我觉得你应该可以一次性更新啊,没有必要一条条更新。
[解决办法]
引用:
我用asp写的具体如下:
sql="SELECT     AA.id AS Sell_ID, AA.dan_sn, BB.id AS sell2_ID "
sql=sql+" FROM         BB LEFT OUTER JOIN "
sql=sql+"  AA ON AA.dan_sn = BB.dan_sn "

sql=sql+"  where AA.id<439765   "

sql=sql+" ORDER BY BB.id asc "

conn.CommandTimeout=10000

rs.open sql,conn
i=0
while not rs.eof
i=i+1
if i mod 20=0 then
response.write "<br>"
end if
sql=sql+";update CC set send_id="&sqlstr(rs("sell2_ID"))&" where send_id="&sqlstr(rs("sell_id"))


response.write rs("sell2_id")&"::"
conn.execute sql
rs.movenext
wend
rs.close


还是把你这些业务逻辑 写在存储过程里面把 
大数据量怎么快速更改表的字段值AA.sn=BB.sn,CC.AA_id=AA.id,现在要求把CC.AA_id换成BB.id,请,多谢
[解决办法]
UPDATE C
SET C.send_id=BB.id
FROM BB LEFT OUTER JOIN   
AA ON AA.dan_sn = BB.dan_sn 
INNER JOIN  CC C
ON CC.send_id=AA.id
WHERE  AA.id<439765 

SORRY,我没有测试。

热点排行