日期:2014-05-17  浏览次数:20979 次

SQL Server2000存储后得到当前记录的ID问题!
程序为SQL   Server2000   +   asp,
程序功能为:发表了一条信息后,如果选择了上传图片功能,则获取刚刚发布的信息的ID,用来在上传图片时把地址传入此ID的某字段中。
但在数据库中,ID并不按升序排列,我用rs.movelast,无法正确获取ID的值。
刚刚接触这方面,查了一些用存储过程的方法,但是不会用。
并且,存储信息的时候,涉及到很多的东西,比如加、减其它表中的值等。再加上上传图片是在提交了信息后才有的操作,所以个人认为,获取当前记录的ID是最好的办法。
请高人指点~不用@@identity之类的方法,如何才能正确获取ID,
如果一定要用存储过程的方法,请写个实例~谢谢。
如果有需要,我可以贴代码。

------解决方案--------------------
假设一个表test
id int 自增量
name varchar(20)
imgpath varchar(20)
程序如下

Dim connstr,conn,rs
connstr = "driver=SQL SERVER; server=(local);UID=sa;PWD=123;DATABASE=mydb "
set conn =Server.CreateObject( "ADODB.Connection ")
conn.Open connstr
set rs = server.CreateObject( "ADODB.Recordset ")
rs.open "test ",conn,2,2
rs.addnew
rs( "name ")= "a "
rs.update

rs.close
'获得新添加记录的ID,并用变量newid来接收
rs.open "select lastid=@@IDENTITY "
newid=rs( "lastid ")
response.write "lastid: "&newid '将newid输出
rs.close
set rs=nothing
conn.close
set conn=nothing