sql select 如何定义自增列?


今天在项目中遇到一个问题,想在存储过程当中将查询出来的数据放到一个临时表中,不想create table(这人懒 ),可是临时表中须要用到一个自增列,怎么办呢?只好想办法啦  结果以下:ide

drop table #temp
SELECT id = IDENTITY(int,1,1),* INTO #TEMP FROM myTable 
select * from #temp 
spa

 

说明:id = IDENTITY(int,1,1),这句创建自增列的。其余的也不用多说了!^_^orm

 

 

参考资料:
ci

SQL Server中,常常会用到Identity标识列,这种自增加的字段操做起来的确是比较方便。但它有时还会带来一些麻烦。it

示例一 当表中被删除了某些数据的时候,自增加列的编号就再也不是一个连线的数列。这种时候咱们能够用如下方案来解决。io

SET IDENTITY_INSERT [TABLE] [ON|OFF]

容许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT操做时手工指定插入到标识列中的编号,同时必须在操做完成后,将IDENTITY_INSERT还原成OFF,不然下次插入的时候必须指定编号,那否则就没法完成INSERT操做。table

示例二:当表中的记录被所有删除,但此时标识列的值愈来愈大的时候,若是不加以重置,它还会无休止的增加。这个时候咱们就要用到:class

DBCC CHECKIDENT(TABLE, [RESEED|NORESEED], [1])

    将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种状况下,你能够用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。select

相关文章
相关标签/搜索