/*****************************一个方法******************************/
---判断Nums 表是否存在,存在即将其删除
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
---重新创建表
CREATE TABLE dbo.Nums(n int NOT NULL);
DECLARE @max AS int,@rc AS int;
SET @max=1000000;
SET @rc=1;
INSERT INTO dbo.Nums VALUES(1);
WHILE @rc*2<=@max
BEGIN
INSERT INTO dbo.Nums SELECT n+@rc FROM dbo.Nums;
SET @rc=@rc*2;
END
INSERT INTO dbo.Nums
SELECT n+@rc FROM dbo.Nums WHERE n+@rc<=@max;
GO
--select top 10 * from Nums order by n desc
/*****************************一个方法******************************/
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
---重新创建表
CREATE TABLE dbo.Nums(id int NOT NULL );
go
declare @j int
set @j = 1
insert into Nums values (1)
while @j*2 <= 1000000
begin
insert into Nums select id+@j from Nums
set @j = @j * 2
end
insert into Nums select id+@j from Nums where id+@j<=1000000
---判断Nums 表是否存在,存在即将其删除
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
---重新创建表
CREATE TABLE dbo.Nums(n int NOT NULL);
DECLARE @max AS int,@rc AS int;
SET @max=1000000;
SET @rc=1;
INSERT INTO dbo.Nums VALUES(1);
WHILE @rc*2<=@max
BEGIN
INSERT INTO dbo.Nums SELECT n+@rc FROM dbo.Nums;
SET @rc=@rc*2;
END
INSERT INTO dbo.Nums
SELECT n+@rc FROM dbo.Nums WHERE n+@rc<=@max;
GO
--select top 10 * from Nums order by n desc
/*****************************一个方法******************************/
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
---重新创建表
CREATE TABLE dbo.Nums(id int NOT NULL );
go
declare @j int
set @j = 1
insert into Nums values (1)
while @j*2 <= 1000000
begin
insert into Nums select id+@j from Nums
set @j = @j * 2
end
insert into Nums select id+@j from Nums where id+@j<=1000000