我想把以下这段程序更改成存储过程来更新数据库,因为数据库中有14万多条记录,我用ASP更新是无法完成的。请大家能否帮忙看看,高分求助!
server.scripttimeout=1000000
response.buffer=false
set db=server.createobject("teachnet1.databaseconnect")
set rs=db.sql_select("select * from 学生成绩表 where 成绩<>0 and 学年=2004-2005 and 学期=第二学期","CJDBconfig")
for i=1 to rs.recordcount
set rs1=db.sql_select("select * from 课程信息表 where cid="&rs("课程编号")&" and (课程性质<>05 and 课程性质<>08 and 课程性质<>11 and 课程性质<>07)","CJDBconfig")
if rs1.recordcount<>0 then
if trim(rs("所在院系"))=trim(rs1("院系名称")) then
set rs1=db.sql_select("update 学生成绩表 set 课程性质="&rs1("课程性质")&"","CJDBconfig")
response.write "更新完成"%><br>
<% else
if (trim(rs1("课程性质"))<>05) and (trim(rs1("课程性质"))<>08) and (trim(rs1("课程性质"))<>07) and (trim(rs1("课程性质"))<>11) then
set rs1=db.sql_select("update 学生成绩表 set 课程性质=05","CJDBconfig")
response.write "更新成功!"%><br>
<% end if
end if
end if
rs.movenext
next
rs.close
response.write "数据更新成功!"
对了,如果还有鉴别键的话,你可以加上where [鉴别键]>多少数值
--执行一下两个sql或者,作为sp来运行。
update a
set 课程性质=b.课程性质
from 学生成绩表 a ,课程信息表 b
where a.课程编号=b.cid and a.成绩<>0 and a.学年=2004-2005 and a.学期=第二学期
and b.课程性质<>05 and b.课程性质<>08 and b.课程性质<>11 and b.课程性质<>07
and rtrim(ltrim(a.所在院系))=rtrim(ltrim(b.院系名称))
update a
set 课程性质=05
from 学生成绩表 a ,课程信息表 b
where a.课程编号=b.cid and a.成绩<>0 and a.学年=2004-2005 and a.学期=第二学期
and b.课程性质<>05 and b.课程性质<>08 and b.课程性质<>11 and b.课程性质<>07
and rtrim(ltrim(a.所在院系))<>rtrim(ltrim(b.院系名称))