DECLARE @max AS INT, @rc AS INT;
SET @max = 1000000;
SET @rc = 1;
INSERT INTO dbo.Nums(n) VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums(n) SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
END
INSERT INTO dbo.Nums(n)
SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
GO
第一波:1
第二波:2
第三波:1+2,2+2=3,4
第四波:1+4,2+4,3+4,4+4=5,6,7,8
第五波:9-16
...
第N完,有2的N-1次方的数。
最后一波:直到最后。