今天在项目中遇到一个问题,想在存储过程当中将查询出来的数据放到一个临时表中,不想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