如何取得当前插入记录的ID

我们在设计数据库时一般都会设计一个自增长型的或GUID型的字段作为记录的唯一性标志,这样的字段在执行插入操作时其值一般都由数据库自行分配,不需要我们为其赋值,但是在实际使用过程中我们常常需要在完成插入操作以后立刻就返回新记录的ID,那么新记录的ID该如何取得呢,一般常用的有以下几种方法,其一是不使用自增长型字段,在插入前先计算出下一ID的值,由于ID值是计算出来的并不是由数据库分配的,所以自然可以轻松取得新记录的ID值了,这种方法一般常在存储过程里面结合事务一起来使用;其二是先执行插入操作,操作成功以后再执行一次查询操作,查询最后一条与插入的数据相匹配的记录,其对应的ID就是新记录的ID,如果是SQL Server数据库还可以在Insert语句后面跟上Select @@identity 来直接返回新记录的ID;

 

如果我们使用ADO RecordSet对象的AddNew方法进行数据库插入操作,实际上还有一种更简便的方法可以返回新记录的ID,比如:

 

dim id as long

 

'建立数据库连接

dim conn as new adodb.connection

conn.open …………

 

'打开news表并插入数据

dim rs as new adodb.recordset

rs.open "select id,title,content from news where 0=1",conn,1,1

rs.addnew

rs.fields("title")="标题"

rs.fields("content")="内容"

rs.update

id=rs.fields("id")     '返回新记录的ID

rs.close

set rs=nothing

conn.close

set conn=nothing

 

从上面的代码可以看出来在rs.update将新记录保存到数据库以后先不关闭记录集,直接用rs.fields("id")就可以取得新记录的ID。

 

--------------------------------------------------------------------------------------------------
PS:本文档为本人原创,如需转载请注明作者及出处。谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值