找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 3997|回复: 0

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

[复制链接]

431

主题

77

回帖

8

广播

论坛版主

积分
214
泰拉
0
水晶
10
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【宝剑回鞘】【泰拉达人】【奥运选手】

发表于 2020-8-5 21:53:40 | 显示全部楼层 |阅读模式
本帖最后由 mickeyort 于 2020-8-5 22:08 编辑

有两种方式可以获得刚新插入的id
①从inserted临时表中查询
②使用全局变量@@identity 查询
1、使用 output 关键字输出inserted临时表的 id
在执行insert之后,inserted 为已插入的临时表,可以从临时表得到刚刚插入该表的 id 了。
  1. insert into t_student(name,studentno,sex,age)
  2. output inserted.id values('张连康','101001','男',22)
复制代码
2、使用SQL的变量或全局参数 (常用)
  1. select @@IDENTITY --返回为当前会话的所有作用域中的任何表最后生成的标识值。
  2. select IDENT_CURRENT('table_name') --返回为任何会话和任何作用域中的特定表最后生成的标识值,它不受作用域和会话的限制,而受限于所指定的表
  3. select SCOPE_IDENTITY() --返回为当前会话和当前作用域中的任何表最后生成的标识值。
复制代码
最常使用的应该是 @@identity ,但是它是全局下的新插入的id,也就是如果有多线程的话,那么获取的不一定是想要的结果。
  1. insert into t_student(studentNo,name,sex,age) values('15040241059','zlk','man',22)
  2. select @@IDENTITY
复制代码


获得 小福神卡 一张

卡片说明:mickeyort 遇到 [伪娘星辰] 为他吹了箫 38 他付了你 泰拉.

卡片效果:获得 38 泰拉

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-11-15 10:36 , Processed in 0.156004 second(s), 40 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表