码迷,mamicode.com
首页 > 其他好文 > 详细

如何获得插入当前语句的时候,自增ID的值

时间:2015-09-21 21:32:04      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:

既然是自增的数据列,

那么此时插入的这一条数据应该是最后一条,其ID 应该是最大的

可以使用  select max(ID) from table;

但是有一个问题,如果是一个正在使用的有着频繁插入的数据表,

当你执行完你的insert 语句之后,在你执行这条select 语句之前,如果有其他用户又进行了insert 操作,那么,你select 得到的ID,不一定是你这条语句的ID

所有应该使用的 是 

inset into 表名(列名,列名,.. ) output inserted.ID  values  (数据,数据,...);


使用例子: 
1.对于INSERT,可以引用inserted表以查询新行的属性. 
   insert into [表名] (a) OUTPUT Inserted.a values (‘a‘)      
2.对于DELETE,可以引用deleted表以查询旧行的属性. 
   delete [表名] OUTPUT deleted.a where links = ‘a‘ 
3.对于UPDATE,使用deleted表查询被更新行在更改前的属性,用inserted表标识被更新行在更改后的值. 
   update [表名] set a = ‘b‘ OUTPUT Inserted.a where a = ‘a‘(返回修改后的值) 
   update [表名] set a = ‘b‘ OUTPUT deleted.a where a = ‘a‘ (返回修改前的值) 


如何获得插入当前语句的时候,自增ID的值

标签:

原文地址:http://my.oschina.net/qau/blog/509321

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!