• sql执行insert插入一条记录同时获取刚插入的id


    有两种方式可以获得刚新插入的id
      ①从inserted临时表中查询
      ②使用全局变量@@identity 查询

    1、使用 output 关键字输出inserted临时表的 id

    在执行insert之后,inserted 为已插入的临时表,可以从临时表得到刚刚插入该表的 id 了。

    insert into t_student(name,studentno,sex,age) 
    output inserted.id values('张连康','101001','男',22)

     

    2、使用SQL的变量或全局参数
    select @@IDENTITY --返回为当前会话的所有作用域中的任何表最后生成的标识值。
    select IDENT_CURRENT('table_name') --返回为任何会话和任何作用域中的特定表最后生成的标识值,它不受作用域和会话的限制,而受限于所指定的表
    select SCOPE_IDENTITY() --返回为当前会话和当前作用域中的任何表最后生成的标识值。

    最常使用的应该是 @@identity ,但是它是全局下的新插入的id,也就是如果有多线程的话,那么获取的不一定是想要的结果。

    insert into t_student(studentNo,name,sex,age) values('15040241059','zlk','man',22)
    select @@IDENTITY

      我们建立一个触发器来测试这种方式得到的id,触发器的效果为:当向 t_student 表中插入一条记录时,同时也向 t_class 表中插入一条记录。

    create trigger trig_studentClass
    	on t_student for insert
    as 
    	insert into t_class (classNo,className) 
    	values('001','计算机科学与技术')

     

    这三个的更多的使用说明,可以查看SQL联机帮助手册,里面有详细的说明。

    出处:https://blog.csdn.net/tink_bell/article/details/81661165

  • 相关阅读:
    磁盘缓存
    算法与追MM(转)
    人人都能上清华(转)
    软件加密技术和注册机制原理攻略(转)
    计算二重定积分
    C++运算符重载
    STL中list的用法
    累了??放松一下,看几张关于程序员的几张搞笑图片
    解决来QQ消息后歌曲音量降低问题
    搞ACM的你伤不起(转)
  • 原文地址:https://www.cnblogs.com/mq0036/p/12869610.html
Copyright © 2020-2023  润新知