本帖最后由 mickeyort 于 2020-8-5 22:08 编辑
有两种方式可以获得刚新插入的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
复制代码
|