◎◎identity ,ident_current() ,scope_identity的区别

博客指出一直使用的@@identity获取表中最后插入记录的identity值在某些情况不可靠,介绍了作用域和会话的概念,对比了@@identity、ident_current('tablename')和scope_identity的相同点与不同点,包括返回最后插入标识值的范围差异。

一直以来都是使用@@identity来获得最后一个插入到表的记录的identity值,最近发现这种方法在某种情况是不可靠的,先来看看两个概念
作用域:在SQLSERVER作用域就是一个模块-存储过程,触发器,函数或批处理
会话:  一个用户连接产生的所有上下文信息(online book找不到会话的概念,参照会话上下文概念而写)

相同点:都是返回最后插入的标识值
不同点:
@@identity :返回当前会话最后一个标识值,不限于特定的作用域 ;
ident_current('tablename'):返回任何会话,任何作用域中的指定表中生成的最后一个标识值 ;
scope_identity :返回当前会话当前作用域任何表生成的最后一个标识值 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值