[点晴永久免费OA]SQL Server-INSERT后返回自增长ID值
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
insert INTO table (name) VALUES('bob'); ![]() 初初一看,貌似可以用下面这两种方法: select MAX(id) from table; 但细细思量,这两种方法都有问题,如果此表存在着大量并发操作时,用这个方法拿到的ID大概率不是刚刚insert生成的ID,所以上面这个方法是不保险的,只能用于单个人操作时,多人操作的话,要用其他办法。有多种方法可以在插入命令后获取最后插入的 ID: @@IDENTITY:它返回在当前会话中的连接上生成的最后一个标识值,而不管表和产生该值的语句的范围 现在似乎更难决定哪一个将完全符合我的要求,我最喜欢 SCOPE_IDENTITY(),使用 SCOPE_IDENTITY() 获取新的ID值方法如下: insert INTO table (name) VALUES('bob'); 如果您在插入语句中使用 select SCOPE_IDENTITY() 和 TableName,您将获得符合您期望的确切结果。 特别注意: 如果获取的结果是null,说明此表没有自增长主键字段,上述功能生效的必要条件是表要有唯一自增长主键字段。 该文章在 2023/6/27 18:48:42 编辑过 |
关键字查询
相关文章
正在查询... |