批量数据修改

muwenyi 2003-03-04 09:18:25
我要修改一个表中一个字段的内容。这个表包含2万多条记录。我用ASP写了以下程序。但是由于数据量太大,IIS服务器运行经常超时,每次运行也就能修改20几条。

程序如下:
<%
set conn = server.CreateObject ("ADODB.Connection")
conn.Open "DSN=MYDBODBC;Uid=sa;Pwd=;"

set rs=server.CreateObject("ADODB.RecordSet")
set rst=server.CreateObject("ADODB.RecordSet")
sSql="SELECT SN,ModelName FROM warranty WHERE LEN(ModelName)< 8"
rs.Open sSql,Conn,3,2
while not rs.eof

sSql="select SN,ModelName from tempin"
rst.open sSql,Conn
do while not rst.eof
if rs("SN")= rst("SN") then
rs("ModelName")=rst("ModelName")
sSql = "delete from tempin where SN='" & rst("SN") & "'"
conn.Execute sSql
exit do
end if
rst.movenext
loop

rst.close
rs.movenext
wend
rs.close
conn.Close
set Conn=nothing
response.write "数据库执行完毕"

%>

请问我应该怎么办?
...全文
43 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
muwenyi 2003-03-04
  • 打赏
  • 举报
回复
TO hubinasm(hubin):

太伟大了。其实这个我也应该自己想到的。真是太笨了我。嘻嘻。谢谢


感谢zxhong(红透半边天)、liuqinyi(宝贝) 、 gongsonghe(自由骆驼)、hubinasm(hubin)各位专家的指导!结贴
muwenyi 2003-03-04
  • 打赏
  • 举报
回复
TO liuqinyi(宝贝):

但是存储过程怎么写呢?存储过程能够比较两个表中一个字段的值吗?能够相互赋值吗?
hubinasm 2003-03-04
  • 打赏
  • 举报
回复
update warranty set warranty.modelName = tempin.modelName from warranty,tempin where warranty.SN = tempin.SN and LEN(ModelName)< 8
gongsonghe 2003-03-04
  • 打赏
  • 举报
回复
只有用存储过程。

或者用sqlerver的内部语句,但是过程要烦一点。

我曾经用过同样的方法来试过asp在网页中的执行效率太低了。。。

或者你也可以把settimeout 放大一点比如:3个小时什么的。。。。
另外 更新语句尽量用sql语句,不要用ado来执行。效率可能更高一点
muwenyi 2003-03-04
  • 打赏
  • 举报
回复
TO: zxhong(红透半边天)

我可能没有说明我的问题。我再详细的叙述一下:

现在有两个表:warranty(要修改的表) 和 tempin(参照表)都含有2万多条记录。

如果warranty的SN字段值=tempin的SN字段值,则将tempin中的ModelName赋予warranty中的ModelName。

我的设计思想是:读出warranty中的一个记录,和 tempin所有的记录相比(其中只有一条记录是符合条件的)然后再赋值。
liuqinyi 2003-03-04
  • 打赏
  • 举报
回复
使用存储过程,我做过实验,存储过程的效率比语句的效率高出很多的。
zxhong 2003-03-04
  • 打赏
  • 举报
回复
更新保存:
dim zxhong
for i=1 to count
zxhong=request.form( "zxhong "&i)
sql= " update test set zxhong= "&zxhong& " where id=' "&id
response.write sql
conn.execute sql
next

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧