首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

新增一条记录后返回该记录的id解决方法

2012-01-16 
新增一条记录后返回该记录的id表中的ID字段是自动增长列,现在我想插入一条记录,但是我想得到插入后,该记录

新增一条记录后返回该记录的id
表中的ID字段是自动增长列,现在我想插入一条记录,但是我想得到插入后,该记录对应的ID,请问这个SQL语句怎么写呀?
为了考虑到多用户并发性,这样写肯定不行,1、insert......values(...)   2、select   @@identity   。这样肯定不行,有没有别的办法呀?

[解决办法]
插入前
select id into #t1 from 表
插入后检索
select id from 表 where id not in (select id from #t1)
为新插入的记录ID
[解决办法]
为何不行?
如果不放心,你就begin tran 一下,从获得insert权后,表就被你锁定,直到commit
[解决办法]
insert into tablename (col1,col2) values (v1,v2);select id from tablename where id=@@identity
其中id为自增的唯一标识字段。这条语句不用分割,在同一次调用中执行
[解决办法]
-- scope_identity(),只在当前作用域内返回值
在insert后,执行select scope_identity(),就可获得该记录对应的ID

[解决办法]
为什么肯定不行呢?我觉得肯定行,我用了好几年了
理论上 select scope_identity() 这个语句更严密一些

热点排行