>  기사  >  데이터 베이스  >  MSSQL获取当前插入数据的id

MSSQL获取当前插入数据的id

WBOY
WBOY원래의
2016-06-07 16:22:171140검색

例如我们新建了一张表T_User,字段如下u_id,主键,为标示符,user_name...... 然后我们来执行一个新增插入操作: insert into T_User(user_name,user_password,user_email,user_ip) values('admin','123456','32962435@qq.com','58.20.158.20') ; 有一天,

   例如我们新建了一张表T_User,字段如下u_id,主键,,为标示符,user_name......

  然后我们来执行一个新增插入操作:

  insert into T_User(user_name,user_password,user_email,user_ip)

  values('admin','123456','32962435@qq.com','58.20.158.20') ;

  有一天,我们想在新增插入数据的时候获取到插入这条数据的u_id的值是多少,我们知道从MSSQL2005以后新增了一个output,用来输入某个值,我们就可以利用它来实现

  方法有两种;一种是直接输入某个字段,如:

  insert into T_User(user_name,user_password,user_email,user_ip) output inserted.u_id ///output inserted.u_id一定要放在 values之前,不能放在sql语句的最后面,不然是出错的,inserted是固定的,你想输入当前插入的某个字段就在后面接这个字段即可,我们想获得的是u_id所以是inserted.u_id

  values('admin','123456','32962435@qq.com','58.20.158.20') ;

  另一种方法是使用@@identity,@@identity是系统内置的一个全局变量,其左右就是输入最后一次的标示符,我们可以两步走也可以通过一步实现

  一步实现的代码如下

  insert into T_User(user_name,user_password,user_email,user_ip) output @@identity

  values('admin','123456','32962435@qq.com','58.20.158.20') ;

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.