如何取得当前插入记录的ID
2009-07-01 11:14
267 查看
我们在设计数据库时一般都会设计一个自增长型的或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:本文档为本人原创,如需转载请注明作者及出处。谢谢!
如果我们使用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:本文档为本人原创,如需转载请注明作者及出处。谢谢!
相关文章推荐
- 如何取得当前插入记录的ID
- PHP取得当前插入数据库中记录的id值
- asp如何取得新插入记录的ID(ACCESS库和MSSQL方法不同)
- php之mongodb插入数据后如何返回当前插入记录ID
- php之mongodb插入数据后如何返回当前插入记录ID
- PHP取得当前插入数据库中记录的id值
- asp如何取得新插入记录的ID(ACCESS库和MSSQL方法不同) .
- PHP取得当前插入数据库中记录的id值
- 如何取得Oracle当前会话的编号(Session ID)?
- 如何取得刚刚插入sql server 自增长的id值
- python插入记录后取得主键id的方法(cursor.lastrowid和conn.insert_id())
- jdbc插入一条记录后,马上获取到当前记录的id,以方便对插入的当前记录进行更多的操作
- 如何得到上一次插入记录后自动产生的ID
- 在插入一条记录后 取得自动增长ID
- 【转帖】在SQL Server中如何获得刚插入一条新记录的自动ID号
- 如何获得插入当前语句的时候,自增ID的值
- 如何取得当前数据的上一条和下一条的ID
- 高效查询当前插入后记录的自增长ID
- 如何在c#中获取当前插入的自增ID号?
- 如何在sql中插入记录时返回id(id为自动增长)