(4.53)sql server自增列identity,sql server获取自增列值

【1】概念

【1.1】IDENT_CURRENT('tab_name')

  返回为任何会话和任何作用域中的特定表最后生成的标识值。

  IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。

【1.2】@@IDENTITY

  返回为当前会话的所有作用域中的任何表最后生成的标识值。

【1.3】SCOPE_IDENTITY()

  返回为当前会话和当前作用域中的任何表最后生成的标识值 SCOPE_IDENTITY() 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。

  但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。

【2】案例

if object_id('ttest1') is not null
    drop table ttest1;
create table ttest1(id int identity(1,1),num int);
insert into ttest1 values(1);
select SCOPE_IDENTITY(),IDENT_CURRENT('ttest1'),@@IDENTITY
insert into ttest1 values(1); select SCOPE_IDENTITY(),IDENT_CURRENT('ttest1'),@@IDENTITY

  

【3】在select into 中使用 identity 构造自增列

SELECT  REFID = IDENTITY(INT , 1, 1), DealFlg = 0, ORDERID
INTO #Temp_Lists
FROM ORDERHD
WHERE ORDERDATE = '2012-09-01' AND H.ORDERTYPE = 'Sales'

【4】identity 的其他使用参考

参考:(3.9)常用知识-标识值(identity)的不连续与强行插入、计算列

原文地址:https://www.cnblogs.com/gered/p/14306506.html