CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

conn.execute用SQL语句插入一条记录,怎么取得刚才插入记录的id号?

楼主starwalker(飞)2003-08-01 17:54:29 在 Web 开发 / ASP 提问

conn.execute用SQL语句插入一条记录,怎么取得刚才插入记录的id号?  
  不用查询来找最后一条(或第一条)记录  
  PHP里就有这样的函数,ASP里怎么实现?? 问题点数:0、回复次数:18Top

1 楼lsrzm(Michale Lee)回复于 2003-08-01 18:06:51 得分 0

如何插入Access库记录后马上得到自动编号值    
   
                          首先须保证获得记录集的方式支持bookmark属性,如1,3  
   
                          插入一条带自动编号字段的记录后,获取该记录的bookmark属性值  
   
                          temp   =   rs.bookmark  
   
                          然后  
   
                          rs.bookmark   =   temp  
   
                          试试!!  
   
                          Response.write   rs.Fields("ID").Top

2 楼Primer2002cn(教官)回复于 2003-08-01 18:07:42 得分 0

如果ID是自动增长的话可以通过select   ##identity或得Top

3 楼zorou_fatal(The world and system is even)回复于 2003-08-01 18:08:51 得分 0

<%  
  dim   conn  
  set   conn=server.CreateObject("adodb.connection")  
  conn.open   "DR"  
  set   rst=server.CreateObject("adodb.recordset")  
  rst.Open   "select   *   from   dr",conn,2,3  
  rst.addnew  
  rst("department")="NEW   one"  
  rst("human")="Newton"  
  rst.Update  
  rst.MoveLast  
  Response.Write   rst("id")  
  conn.Close  
  set   conn=nothing  
  %>  
  这样也可以。Top

4 楼net_lover(【孟子E章】)回复于 2003-08-01 18:08:57 得分 0

http://www.flws.com.au/showusyourcode/codeLib/code/AddNew.asp?catID=3Top

5 楼huhan3(穿马甲的蛇)回复于 2003-08-01 18:11:18 得分 0

没发现  
  如果是自增长的id,可以插入后在查id   最大的  
  ——我一般都是这样做的:(Top

6 楼starwalker(飞)回复于 2003-08-01 18:12:11 得分 0

SQL   Server  
  ID主键,自增Top

7 楼starwalker(飞)回复于 2003-08-02 07:50:45 得分 0

能不能不用addnew方法啊?Top

8 楼anita2li(hehe...)回复于 2003-08-02 07:55:00 得分 0

ID.nextValTop

9 楼zorou_fatal(The world and system is even)回复于 2003-08-02 08:13:56 得分 0

注意,如果你是在插入记录后来进行select   max   id有可能出现并发的情况。  
  也就是有可能同时有其他用户也在增加记录,这样,你很有可能找到的不是你想要的id。Top

10 楼nik_Amis(...)回复于 2003-08-02 09:12:31 得分 0

upTop

11 楼qdlanghua(青岛浪花)回复于 2003-08-02 09:45:25 得分 0

假设插入语句为  
  insert   into   table(field1,field2)   values("111","222")  
   
  查询语句应为:  
  select   id   from   table   where   field1="111"   and   field2="222"Top

12 楼zorou_fatal(The world and system is even)回复于 2003-08-02 09:54:10 得分 0

net_lover(孟子E章)   大哥给出的链接  
  的意思也是要防止并发。Top

13 楼starwalker(飞)回复于 2003-08-15 10:47:00 得分 0

是是!  
  我就是为了防止并发啊!  
   
  qdlanghua(青岛浪花)   :万一有多个同样的记录呢?Top

14 楼qdlanghua(青岛浪花)回复于 2003-08-15 11:33:17 得分 0

查询语句应为:  
  select   top   1   id   from   table   where   field1="111"   and   field2="222"   order   by   id   desc  
   
  也就是,如果有多个重复记录,随意取一个,没有多大区别的,本例中取最后一个  
  Top

15 楼qdlanghua(青岛浪花)回复于 2003-08-15 11:44:45 得分 0

因为如果记录是重复的,取哪一个并没有多大的意义,随便取一个即可  
  以下我取最大的一个  
  查询语句应为:  
  select   top   1   id   from   table   where   field1="111"   and   field2="222"   order   by   id   desc  
  Top

16 楼starwalker(飞)回复于 2003-08-15 20:02:47 得分 0

啊??Top

17 楼kevinyang886(阳光)回复于 2003-08-15 21:26:13 得分 0

id应该是自赠的呀!取最大不就可以了嘛!Top

18 楼starwalker(飞)回复于 2003-08-16 09:53:55 得分 0

取最大  
  就会有并发的问题啊!Top

19 楼cloudchen(cloudchen)回复于 2003-08-16 10:02:57 得分 0

不要用conn.execute  
  --------------------------------------------  
  Dim   userID  
  Set   rs   =   Server.CreateObject("ADODB.Reocrdset")  
  rs.open   sql,conn,1,3  
  rs.addnew  
  ....  
  rs.update  
  userID   =   rs("userID")  
  rs.close  
   
  Response.Write   userID  
  Top

相关问题

  • 请教插入记录的sql语句
  • Sql语句错误:记录过大
  • 批量删除记录SQL语句。
  • SQL语句问题,有相同记录
  • 关于SQL语句的记录
  • 如何得到n条记录以后的记录集(请用sql语句)
  • 执行插入记录的SQL语句是否可以返回记录吗?
  • 用sql语句查询 为什么记录集中总是没有记录?
  • sql 语句 ,如何取出相同记录中的第一条记录
  • SQL语句,怎么选择从第11条记录到第20条记录

关键词

  • 语句
  • 查询
  • sql
  • 记录
  • 插入
  • 并发
  • bookmark
  • rs
  • conn
  • execute

得分解答快速导航

  • 帖主:starwalker

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo