自動加入序號
A.直接定义,例如
字段类型设置为int型,种子为1,增量。即可。
identity(startvalues,addvalues)
A int identity(35,1)
这就表示字段A的,初始值是35,以1自动增加
也就是说如果你的第一条记录是,那么下一条记录就是36
其中的(35和1)根据自己的实际情况定!!
,对于这种用法,你同时需要了解相关的用法,例如编号重置等等。例如:
1、truncate命令不但会清除所有的数据,还会将IDENTITY的SEED的值恢复到原是值。
truncate table tablename
2、而DBCC CHECKIDENT则更加方便一些,可以在不删除数据的情况下指定SEED的值。
DBCC CHECKIDENT (tablename,reseed,1)
阐述:
DBCC CHECKIDENT
检查指定表的当前标识值,如有必要,还对标识值进行更正。
语法
DBCC CHECKIDENT
( 'table_name'
[ , { NORESEED
| { RESEED [ , new_reseed_value ] }
}
]
)
参数
'table_name'
是要对其当前标识值进行检查的表名。表名必须符合标识符规则。有关更多信息,请参见使用标识符。指定的表必须包含标识列。
NORESEED
指定不应更正当前标识值。
RESEED
指定应该更正当前标识值。
new_reseed_value
是在标识列中重新赋值时要使用的值。
示例
A. 如有必要,重置当前标识值
下例在必要的情况下重置 jobs 表的当前标识值。
USE pubs
GO
DBCC CHECKIDENT (jobs)
GO
B. 报告当前标识值
下例报告 jobs 表中的当前标识值;如果该标识值不正确,并不对其进行更正。
USE pubs
GO
DBCC CHECKIDENT (jobs, NORESEED)
GO
C. 强制当前标识值为 30
下例强制 jobs 表中的当前标识值为 30。
USE pubs
GO
DBCC CHECKIDENT (jobs, RESEED, 30)
GO
B.就是用identity(data_type,seed,increment)
select identity(int,1,1) as id, * into #t from table name (条件)
select * from #t
drop table #t
C.在sp,传入identity的seed,以供参考:
create table tt (n nvarchar(10))
insert into tt select 'a' union all select 'b' union all select 'c' union all select 'd'
go
select * from tt
go
create proc d
@id int
as
declare @bh int
set @bh=@id
exec('select identity(int,'+@bh+',1) id,* into #t from tt select * from #t drop table #t')
go
exec d 10
go
drop proc d
drop table tt