看了你的追问,如果这句语句报错,那么就换一种写法。
select top 1 * FROM 表明 order by id desc
这个是获得表中最大的ID,然后你添加成功后,将获得的这个ID号+1返回即可。
不知道LZ使用什么数据库,如果使用Access数据库可以采用下面办法:首先须保证获得记录集的方式支持bookmark属性,如1,3
插入一条带自动编号字段的记录后,获取该记录的bookmark属性值
temp = rs.bookmark
然后
rs.bookmark = temp
Response.write rs.Fields("ID").
如果是SQL Server数据库,那就更简单了,如果ID是自动增长的话可以通过select ##identity 语句直接获得.
如果是MySQL,直接使用LAST_INSERT_ID()函数,具体写SQL按下面格式即可:
select last_insert_id() as ID from XXXX limit 1
-----------------------------------------
注意上面所有的办法,前提是要求你的ID是真的主键,我见过很多XD写个ID纯粹是为了格式通过.还有就是,如果你的程序会有大量的并发连接,上面所有的方式都有可能失效,也就是你插入数据后,别人也插入一个数据,然后你取最后的ID,这个是必然的,主要是没有办法避免同步的问题.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)