电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 设计学院 > 网页设计 > 正文
用ASP如何获得刚插入数据库的记录的ID号?
用ASP如何获得刚插入数据库的记录的ID号?
2005-12-30 19:13:53  文/45IT收集   出处:电脑软硬件应用网   

1.SQL Server

  对于SQL Server 2000来说,它提供了两个全新的函数(IDENT_CURRENT,SCOPE_IDENTITY),并且改进了@@IDENTITY的不足.当你插入新记录后,可以调用函数:PRINT IDENT_CURRENT('table') '这将获得新的IDENTITY值,不管数据库中是不是有记录添加(这就避免了@@IDENTITY的连接限制),或者:PRINT SCOPE_IDENTITY() '这将获得在当前存储过程,触发器等其他程序创建的最新记录的IDENTITY值.而全局变量@@IDENTITY有一个问题,当对一张表执行insert时,如果该表有触发器程序在执行插入操作,然后,接着在另一张表中插入记录,这样返回@@IDENTITY值就是第二张表的IDENTITY值。

  如果你用的不是SQL Server 2000,你最好一个简单的存储过程来解决这个问题。 
  CREATE PROCEDURE myProc 
  @param1 INT 
  AS 
  BEGIN 
  SET NOCOUNT ON 
  INSERT INTO someTable 
  ( 
  intField 
  ) 
  VALUES 
  ( 
  @param1 
  ) 
  SET NOCOUNT OFF 
  SELECT NEWID = @@IDENTITY 
  END

  在ASP中你可以这样做: 
<% 
fakeValue = 5 
set conn = Server.CreateObject("ADODB.Connection") 
conn.open "<conn string>" 
set rs = conn.execute("exec myProc @param1=" & fakeValue) 
response.write "New ID was " & rs(0) 
rs.close: set rs = nothing 
conn.close: set conn = nothing 
%>

  2.Access

  对于Access,你可以用下面这样的方法: 
<% 
fakeValue = 5 
set conn = Server.CreateObject("ADODB.Connection") 
conn.open "<conn string>" 
conn.execute "Insert into someTable(intField) values(" & fakeValue & ")" 
set rs = conn.execute("select MAX(ID) from someTable") 
response.write "New ID was " & rs(0) 
rs.close: set rs = nothing 
conn.close: set conn = nothing 
%>

  然而对于多人同时向数据库中添加数据,我们就要利用记录集的adOpenKeyset游标来防止出错。例如下面的例子: 
<% 
fakeValue = 5 
set conn = Server.CreateObject("ADODB.Connection") 
conn.open "<conn string>" 
set rs = Server.CreateObject("ADODB.Recordset") 
rs.open "select [intField] from someTable where 1=0", conn, 1, 3 
rs.AddNew 
rs("intField") = fakeValue 
rs.update 
response.write "New ID was " & rs("id") 
rs.close: set rs = nothing 
conn.close: set conn = nothing 
%>


http://nic-002.nicchina.com/
QQ:20316801

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    页面自动跳转的几种实现方法
    网站内容的四种分类形式 或多或少的…
    如何指定规范网页?rel="canonical"
    浅谈网站评论体系设计的不足之处
    网页中“上一篇”“下一篇”设计思考
    网页设计进度指示器帮助用户预测步骤
    网页用户体验:网页注册表单设计分析
    网页设计常出现8大问题
    网页设计的形象思维归纳
    彻底去掉动易内容页顶部的“改变图片…
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号