ACCESS2003如何获取表的当前自增ID

happySnow_zhe 2013-08-02 03:39:18
如题所示,望指点…不是插入后返回,而是仅仅是获取表当前的自增ID达到了多少?
...全文
304 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
happySnow_zhe 2013-08-06
  • 打赏
  • 举报
回复
继续寻求答案之旅…
ktei2008 2013-08-06
  • 打赏
  • 举报
回复
引用 14 楼 happySnow_zhe 的回复:
继续寻求答案之旅…
你还寻求什么啊……改改你的设计吧。
Shawn 2013-08-05
  • 打赏
  • 举报
回复
http://dazuiyuloveapple.i.sohu.com/blog/view/154245677.htm http://bbs.csdn.net/topics/80274397 http://access911.net/index.asp --这是一个学习access的好网站,大部分ACCESS的问题,都可以去问它
happySnow_zhe 2013-08-05
  • 打赏
  • 举报
回复
引用 5 楼 wwwwgou 的回复:
显示系统隐藏表,看一下系统表中有没有记录这个字段。别的想不到办法了
我看了下,对他的系统表也不太了解,没找到,但我想这个自增ID应该是有个值保存的,不然他怎么知道插入到多少了呢?不知道您对这个系统表有没有了解?谢谢…
happySnow_zhe 2013-08-05
  • 打赏
  • 举报
回复
引用 6 楼 dhlb 的回复:
insert into test(UserName,Address,mobile,remark ) values ('Look','陕西','','') select @@IDENTITY AS returnName; 在SQL SERVER中可以这样直接插到最新的自增序号,ACCESS2003不太清楚了,可以试试。
您没有仔细看我的描述:不是插入后返回,而是仅仅是获取表当前的自增ID达到了多少?
东海凌波 2013-08-05
  • 打赏
  • 举报
回复
SqlServer中的自增的ID的最后的值: SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。 SELECT @@IDENTITY --返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值 SELECT IDENT_CURRENT('TbName')--不受作用域和会话的限制,而受限于指定的表。 IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。 一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。 对于马上使用的刚才插入的新记录ID用SCOPE_IDENTITY()是最合适的; 对于想要得到一系列的操作中最后得到的那个自增的ID最好用@@IDENTITY; 对于想要得到一个表中的最后一个插入操作所产生的ID的最好用IDENT_CURRENT('TBName')
happySnow_zhe 2013-08-05
  • 打赏
  • 举报
回复
引用 11 楼 rockyljt 的回复:
[quote=引用 6 楼 dhlb 的回复:] insert into test(UserName,Address,mobile,remark ) values ('Look','陕西','','') select @@IDENTITY AS returnName; 在SQL SERVER中可以这样直接插到最新的自增序号,ACCESS2003不太清楚了,可以试试。
如果这样行的话,@@IDENTITY即代表你目前这个表的id已经达到这个数了(即使你有删除以前的记录甚至包括最大的id也被删除了)[/quote] 不好意思,我想要的不是通过INSERT插入数据后返回的当前表的自增ID,我想的是能不能直接就获取到当前表的自增ID达到了多少? 我觉得应该有什么地方保存了这些自增ID的值,不然在执行插入操作的时候他又怎么知道当前的自增ID是多少呢?我把系统表也打开看了一下,但没发现什么?不知道您有没有什么方法?
---涛声依旧--- 2013-08-05
  • 打赏
  • 举报
回复
引用 6 楼 dhlb 的回复:
insert into test(UserName,Address,mobile,remark ) values ('Look','陕西','','') select @@IDENTITY AS returnName; 在SQL SERVER中可以这样直接插到最新的自增序号,ACCESS2003不太清楚了,可以试试。
如果这样行的话,@@IDENTITY即代表你目前这个表的id已经达到这个数了(即使你有删除以前的记录甚至包括最大的id也被删除了)
happySnow_zhe 2013-08-05
  • 打赏
  • 举报
回复
难道真的无法获取到?…
东海凌波 2013-08-03
  • 打赏
  • 举报
回复
insert into test(UserName,Address,mobile,remark ) values ('Look','陕西','','') select @@IDENTITY AS returnName; 在SQL SERVER中可以这样直接插到最新的自增序号,ACCESS2003不太清楚了,可以试试。
Shawn 2013-08-02
  • 打赏
  • 举报
回复
显示系统隐藏表,看一下系统表中有没有记录这个字段。别的想不到办法了
happySnow_zhe 2013-08-02
  • 打赏
  • 举报
回复
引用 3 楼 wwwwgou 的回复:
select maxid = max(id) from tablename
您这个只能针对数据没有删除过的情况!假如最后一条数据被删除了,那么您这条SQL语句获取到的是MAX(ID)-1,但自增ID却是MAX(ID)+1,当让这个是我的一个假设,实际是肯定不知道删除了多少条数据的…
Shawn 2013-08-02
  • 打赏
  • 举报
回复
select maxid = max(id) from tablename
happySnow_zhe 2013-08-02
  • 打赏
  • 举报
回复
依旧是NoBody!……
happySnow_zhe 2013-08-02
  • 打赏
  • 举报
回复
哪位给指点一下啊……

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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