日期:2014-05-18  浏览次数:20618 次

sql C#如何得到自增id的值
我的数据表中id是自增已得到的 我想插入下一条数据如何得到它下一条记录分配给我的id 以前我是这样做的就是插入前先得到表中最后一列的id然后+1就是下一个id 可是别人说如果你的上一条记录被删了的话就不行了 以为系统分给过的id即使你把那条记录给删了他的id也是不会回收的,就相当于那个id被废弃了 比如我现在的id分配到了 18 结果我把第16,17,18这三条记录都删了,现在再添加记录时id任然是从18+1=19开始的。而我前面的做法得到的id却是 15+1=16 。 
请问如何得到正真系统将要给我分配的id 19 而不是16

------解决方案--------------------
不会呀。我用得是SQL 2005 你说的没错 删掉16,17,18这三条记录。在插入一跳。他的ID应该就是19 可能是没有在创建表的时候 .创建列 id int identity(1,1) 的原因吧。。或者是没有设为主键约束 alter table tb 
add constraint PK_id primary key(id) 的原因。。好好检查一下吧。
------解决方案--------------------
有了自增列不知道为啥还要id呢。如果真的想去的当前插入的记录的id,那么可以在插入操作完成以后,再选最大id就是了呗。
------解决方案--------------------
插入数据时,你返回插入数据的id不行吗?