请问怎么能得到新插入的一条记录的id号,谢谢

jordan4 2006-06-21 09:23:45
在一个表的第一列是id列,自动增1,
我用insert语句插入记录后,怎么才能得到新记录的id号?
我现在是写两个对象语句

set rs = Server.CreateObject("ADODB.Recordset")
sql="insert into history_index(h_name,h_date) values('"&request("h_name")&"','"&date()&"')"
rs.open sql,cn,3

set rs2 = Server.CreateObject("ADODB.Recordset")
sql2="select top 1 * from history_index order by h_id desc"
rs2.open sql2,cn,3

这样太麻烦了,有办法解决吗,谢谢高人啦!
...全文
211 13 打赏 收藏 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
loska 2006-06-22
  • 打赏
  • 举报
回复
又来晚了
天野青鸟 2006-06-22
  • 打赏
  • 举报
回复
set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from history_index"
rs.open sql,conn,1,3
rs.AddNew
rs("h_name")=request("h_name")
rs("h_date")=date()
rs.Update
h_id=rs("h_id") '取得h_id的值,你想要的就是这个吧
rs.close
set rs=nothing
jordan4 2006-06-22
  • 打赏
  • 举报
回复
我需要的不是全局变量,而是表中我自己定义的那个字段的值
jordan4 2006-06-22
  • 打赏
  • 举报
回复
我要得到的是新录入那条记录的h_id这个字段的值,select @@IDENTITY可以得到吗?
表里有以下字段:h_id(自增1),h_name,h_date等等,请教,谢谢!
wangbo_wb 2006-06-22
  • 打赏
  • 举报
回复
set rs = Server.CreateObject("ADODB.Recordset")
rs.open "history_index",conn,1,3
dim crID
rs.AddNew
rs("h_name")=request("h_name")
rs("h_date")=date()
rs.Update
crID=rs("id") ''取得自动编号的值
licry01 2006-06-22
  • 打赏
  • 举报
回复
ms sqlserver 2000, 可以用下面的:

set rs = Server.CreateObject("ADODB.Recordset")
sql="insert into history_index(h_name,h_date) values('"&request("h_name")&"','"&date()&"')"
sql = sql & ";select @@IDENTITY;"
rs.open sql,cn,3
'此时的rs是insert语句返回的结果,rs.nextrecordset则返回select @@IDENTITY的值
rs.nextrecordset.fields(0) '这就是新产生的标识的值
jordan4 2006-06-22
  • 打赏
  • 举报
回复
顶!
lolo2006 2006-06-22
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4817/4817848.xml?temp=.3187982
zhangjun 2006-06-22
  • 打赏
  • 举报
回复
只要是自动增加的select @@IDENTITY可以得到
不能用那个什么top 1方法去取
TOP 1有可能取到别人的记录
zhangjun 2006-06-21
  • 打赏
  • 举报
回复
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。


@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。


SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值。

sql="SELECT IDENT_CURRENT('t7')"
sql="SELECT @@IDENTITY"
sql="SELECT SCOPE_IDENTITY()"
选哪一个,请你自己根据实际情况选
jordan4 2006-06-21
  • 打赏
  • 举报
回复
我试了一下,运行以上程序后,crID的值为空,我用的是sql server 2000,怎么办?
jinfeng003 2006-06-21
  • 打赏
  • 举报
回复
如果是SQL就用@@identity全局变量提取

如果是Access,
能稍简单点
set rs = Server.CreateObject("ADODB.Recordset")
rs.open "history_index",conn,3,3
dim crID
rs.AddNew
rs("h_name")=request("h_name")
rs("h_date")=date()
crID=rs("id") ''取得自动编号的值
rs.Update
rs.close

上边的方法同样也适用SQL Server
jordan4 2006-06-21
  • 打赏
  • 举报
回复
解释一下,这个id的值我下面的程序必须要用到的。
内容概要:本文围绕“基于功率指令无缝切换的飞轮储能系统机侧网侧变流器协同控制研究”展开,利用Simulink进行仿真实现,重点探讨飞轮储能系统中电机侧与电网侧变流器在不同工况下的协同控制策略。研究旨在实现功率指令的无缝切换,提升系统动态响应速度与运行稳定性,通过构建机侧PQ控制与网侧恒压控制相结合的双闭环协调控制架构,优化能量管理与模式切换过程中的动态过渡行为,确保充放电模式切换的平滑性与可靠性。结合转子磁场定向、直流母线电压调节等关键技术,有效提升了系统的能量转换效率与电能质量,验证了所提协同控制策略在复杂工况下的可行性与优越性。; 适合人群:具备电力电子、电机控制或新能源系统基础知识,从事储能系统、变流器控制或电力系统仿真实践的科研人员与工程技术人员,尤其适合研究生及以上层次或具备一定Simulink建模经验的研发人员。; 使用场景及目标:①应用于飞轮储能系统的高性能控制设计与仿真验证;②为多变流器协同控制、能量双向流动管理、模式平滑切换等关键问题提供解决方案参考;③服务于科研论文复现、项目开发中的控制算法设计与系统优化。; 阅读建议:建议结合Simulink模型进行同步仿真操作,深入理解控制环路设计与参数整定方法,重点关注功率切换瞬间的动态响应与系统稳定性表现,可进一步拓展至混合储能系统或多能源协调控制场景的研究。

28,402

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧