日期:2014-05-18  浏览次数:20426 次

如何创建一个有递增id的临时表
这个临时表只需要有id一列,从1到N
N最好能自己控制

之前看到一个
SQL code

select top 8000 id = identity(int,1,1) into temp from syscolumns
go
select * from temp



不是很明白为什么用syscolumns能生成8000行id,我自己select过syscolumns,才只有200多行



------解决方案--------------------
探讨
这个临时表只需要有id一列,从1到N
N最好能自己控制

之前看到一个

SQL code

select top 8000 id = identity(int,1,1) into temp from syscolumns
go
select * from temp



不是很明白为什么用syscolumns能生成8000行id,我自己select过syscolumns……

------解决方案--------------------
SQL code

declare @n int

select @n=16

select number id into #t
from master.dbo.spt_values
where [type]='P' 
and number between 1 and @n


select * from #t

id
-----------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

------解决方案--------------------
可以利用笛卡尔积的形式去生成,05或其以上版本试试with cte和row_number排序函数。