请教为什么语句生成的值不是单数啊?

怪了,本以为下面会生成 1,3,5,7这样的值 却是1,2,3,4,5,6,7,8,9,10 这样的~查看变量也是1,2,4,8这样变的啊。。。。望高手解答
IF OBJECT_ID('dbo.Nums') IS NOT NULL
  DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT,@n as int ;
SET @max = 1000000;
SET @rc = 1;


INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
  INSERT INTO dbo.Nums SELECT n+ @rc FROM dbo.Nums;
   
    print @rc
    SET @rc = @rc * 2;
   
   
   
END



郁闷了,这是咋会事啊?

作者: ygs9720   发布时间: 2011-10-31

SET @rc = @rc * 2;

这里结果当然是1,2,4,8

如果要1,3,7应该是SET @rc = @rc * 2+1;

作者: oswica   发布时间: 2011-10-31