一勺抹茶

分享代码的乐趣

 

自動加入序號

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

posted on 2005-07-31 15:38  MoreTea  阅读(129)  评论(0编辑  收藏  举报

导航