SQL SERVER 自增列

复制代码 代码如下:declare @Table_name
varchar(60) set @Table_name = ‘Pay_inputpay’; Select so.name
Table_name, –表名字 sc.name Iden_Column_name, –自增字段名字
ident_current(so.name) curr_value, –自增字段当前值
ident_incr(so.name) incr_value, –自增字段增长值 ident_seed(so.name)
seed_value –自增字段种子值 from sysobjects so Inner Join syscolumns sc
on so.id = sc.id and columnproperty(sc.id, sc.name, ‘IsIdentity’) = 1
Where upper(so.name) = upper(@Table_name) –@Table_name是传入参数 表名
curr_value这个就是准备插入的id

declare @Table_name varchar(60)

set @Table_name = ”;

if Exists(Select top 1 1 from sysobjects Where objectproperty(id,
‘TableHasIdentity’) = 1 and upper(name) = upper(@Table_name) ) select
1else select 0

— or

if Exists(Select top 1 1 from sysobjects so Where so.xtype = ‘U’ and
upper(so.name) = upper(@Table_name) and Exists(Select Top 1 1 from
syscolumns sc Where sc.id = so.id and columnproperty(sc.id, sc.name,
‘IsIdentity’) = 1 ) ) select 1else select 0

判断Table是否存在自增列(Identity column),并查出自增列相关数据:

declare @Table_name varchar(60)set @Table_name = ”;

declare @Table_name varchar(60)set @Table_name =
‘zy_cost_list’;Select so.name Table_name, –表名字 sc.name
Iden_Column_name, –自增字段名字 ident_current(so.name) curr_value,
–自增字段当前值 ident_澳门金沙vip,incr(so.name) incr_value, –自增字段增长值
ident_seed(so.name) seed_value –自增字段种子值 from sysobjects so
Inner Join syscolumns sc on so.id = sc.id and columnproperty(sc.id,
sc.name, ‘IsIdentity’) = 1Where upper(so.name) = upper(@Table_name)

资料引用:

DBCC CHECKIDENT

检查指定表的当前标识值,如有必要,还对标识值进行更正。

语法

DBCC CHECKIDENT( ‘table_name‘[ , { NORESEED| { RESEED [ ,
new_reseed_value ] } } ] )

参数

table_name

是要对其当前标识值进行检查的表名。表名必须符合标识符规则。有关更多信息,请参见使用标识符。指定的表必须包含标识列。

NORESEED

指定不应更正当前标识值。

RESEED

指定应该更正当前标识值。

new_reseed_value

是在标识列中重新赋值时要使用的值。