日期:2014-05-19  浏览次数:20674 次

如何得到新添加记录的自动编号主键值
设计一个表,包含两个字段ID和NAME,其中ID是主键,使用标识递增量为1的整形。但我在客户段添加记录时,因为ID是自动标识的,所以不需要输入,只要输入NAME即可添加一条记录。
问题:如果我想要得到新添加的记录ID时,怎么办?我现在能想到的是再做一个查询来获得,但是这个方法我觉得不能得到准确的数据,或者不是很好。
请问:有什么更好的方法,可以在我新添加记录后得到这条记录的内容呢?

------解决方案--------------------
--@@IDENTITY
--返回最后插入的标识值
create table test(id int identity(1,1),col varchar(20))
insert test select 'a '
union all select 'b '
union all select 'c '
union all select 'd '

insert test(col) values( 'e ')

select col from test where id=@@identity

drop table test

col
--------------------
e
------解决方案--------------------
新添加记录后得到这条记录的内容
---------------------------------------------

很简单在你的查询语句后面加上@@IDENTITY、SCOPE_IDENTITY 或者 IDENT_CURRENT 都可以轻易得到
这三个的作用域不相同,如果要绝对准确推荐你用SCOPE_IDENTITY()函数

比如
insert tableName values( 'name ') SCOPE_IDENTITY()

这条语句返回的就是你刚添加数据的ID值,也就是你自增长列的值,
你的前台就像你用select语句返回一条记录一样接就好