sql server自增列值的获取

时间:2022-02-11 15:44:54
IDENT_CURRENT(tbname) 是看表对象。所以没有受作用域限制。
SCOPE_IDENTITY()  受作用域限制。同一个会话里面不同作用域也会有差异
@@IDENTITY  受会话限制。
如果多线程写入数据库的话,获取某个会话的自增列的值,可以使用SCOPE_IDENTITY() 或者@@IDENTITY,不能使用IDENT_CURRENT(tbname)
 insert into [dbo].[ttttt]
 select 'aaaa'
 select SCOPE_IDENTITY(),IDENT_CURRENT('[ttttt]'),@@identity

--------------------------------------- --------------------------------------- ---------------------------------------

36                                      37                                      36

(1 行受影响)

由于其他会话插入了一条数据,因此IDENT_CURRENT('[ttttt]')多了1