日期:2014-05-18 浏览次数:20855 次
declare @i int set @i=1 xxoo: print @i set @i=@i+1 if @i<101 goto xxoo
------解决方案--------------------
select number from master..spt_values where type='p' and number between 1 and 100
------解决方案--------------------
select number from master..spt_values b where b.type='p' and number between 1 and 100 /* number ----------- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 (所影响的行数为 100 行) */
------解决方案--------------------
select top 100000 row_number()over(order by rand()) from syscolumns,sysobjects,sysindexes
------解决方案--------------------
--生成1-100的6种方法:
--1.while(最简单的,最低效的方式)
declare @t table (id int)
declare @i int set @i=1
while @i<101
begin
insert into @t select @i
set @i=@i+1
end
select * from @t
--2.if+goto(小爱已经给出了)
declare @t1 table (id int)
declare @j int set @j=1
maco:
insert into @t1 select @j
set @j=@j+1
if(@j<101)
goto maco
select * from @t1
--3.identity+临时表
select top 100 identity(int,1,1) id into #tmp from syscolumns,sysobjects
select id from #tmp;drop table #tmp
--4.row_number()(Vidor已经给出了)
select top 100 row_number() over(order by (select 1)) from syscolumns,sysobjects
--5.系统辅助表master..spt_values(SQL777和dawugui已经给出了)
select number from master..spt_values where type='p' and number between 1 and 100
--6.CTE递归(楼主已经给出了)
;with t as
(
select 1 id union all select id+1 from t where id<100
)
select * from t
--楼下继续补充
------解决方案--------------------
go
create table tmp(ID int identity)
go
insert tmp default values
go 100
go
select * from tmp
drop table tmp