access数据库怎么才能保存后立即就返回当前保存产生的id,我弄的头都大了,有没有人帮帮忙

access数据库怎么才能保存后立即就返回当前保存产生的id,我弄的头都大了,有没有人帮帮忙,第1张

首先用一楼的语句查询出最大的那个ID号,然后你增加记录成功后,那么当前增加的那条数据产生的ID号就等于查询出来的那个最大的ID号+1,因为你的ID是自动编号,+1即可。最后你返回那个ID+1的值即可,就是你当前保存的ID号了。

看了你的追问,如果这句语句报错,那么就换一种写法。

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,这个是必然的,主要是没有办法避免同步的问题.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6686152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存