使用 scope_identity() 函数获得表的标识值

简介: 做开发的时候,我们经常要在执行一条语句后 获得数据库的自增ID值,最典型的例子就是在生成订单后,要返回订单ID,之前有一种不严谨的做法是,用select top 1 ID order by ID desc,值所以不严谨有一种说法是,在高并发用户的情况下,很可能在插入和查询之间又一次进行了插入操作,这样查询的结果就和实际ID不是对应的了。

做开发的时候,我们经常要在执行一条语句后 获得数据库的自增ID值,最典型的例子就是在生成订单后,要返回订单ID,之前有一种不严谨的做法是,用select top 1 ID order by ID desc,值所以不严谨有一种说法是,在高并发用户的情况下,很可能在插入和查询之间又一次进行了插入操作,这样查询的结果就和实际ID不是对应的了。

其实这个需求最终的准确解决方法是使用

scope_identity()

  

返回相同范围内最后插入表的标识值,这个范围可以是存储过程,触发器或者是批处理

上面的解释同样适用于为什么不能适用与scope_identity 类似的系统函数

 @@identity

  

 

另外我们可以使用 identitycol自动指向表中有identity属性的列,例如:

select identitycol from customer 和

select cust_id from customer 是一样的效果

目录
相关文章
|
7月前
|
数据库
仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
874 0
|
8月前
|
存储 C++ 容器
在C++的set的作用类型
在C++的set的作用类型
58 0
|
SQL 分布式计算 大数据
Column 对象_操作_别名和类型 | 学习笔记
快速学习 Column 对象_操作_别名和类型
119 0
Column 对象_操作_别名和类型 | 学习笔记
如何传值scope接口权限值-参数解读系列
scope支持对应接口传值详情文档【查看】:   auth_user:【获取用户信息】、【网站支付宝登录】   auth_base:【用户信息授权】   auth_ecard:【商户会员卡】   auth_invoice_info:【支付宝闪电开票】   auth_puc_charge:【生活缴费】   auth_zhima:【芝麻评分】   auth_user_assets:【菜品营销】 特殊说明:   多个scope时用”,”分隔,如scope为”auth_user,auth_ecard”时,此时获取到的access_token,   既可以用来获取用户信息,又可以给用户发送会员卡。
764 12

热门文章

最新文章