(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'