非要50萬嗎?    
524288條行不行?
declare @i int 
set @i = 1
insert into tblStock(PartCode,PartRule,PartERule  )
values(newid(),N'123',N'456')
while (@i < 20)
begin
insert into tblStock(PartCode,PartRule,PartERule  )
select newid(),PartRule,PartERule from tblStock
set @i = @i + 1
end

解决方案 »

  1.   

    飄香兄,上面有些小bug.請取left(newid(),13)
      

  2.   

    在查询分析器中执行下面语句
    DECLARE @MyCounter numericSET @MyCounter = 0WHILE (@MyCounter < 500000)
    BEGIN
       INSERT INTO tblStock(PartCode) values(@MyCounter)
       SET @MyCounter = @MyCounter + 1
    END
      

  3.   

    謝了,我先試試各位的SQL.
      

  4.   

    Yes!!
    竹幫主的SQL只用了28秒! 夠快!!!!
    謝謝。:)
      

  5.   

    我这里这个用19秒。呵呵,其实和竹帮主方法一样的。我的机器快。
    declare
    @i int,
    @count int
    insert tblstock
    values( convert(int,'0') + 1,'a','b')
    set @i = 1WHILE (@i < 20)
    BEGIN
       select @count = count(*)  
       from tblstock   insert tblstock
       select  convert(int,PartCode) + @count ,'a','b'
       from tblstock
       select @i = @i + 1
    END
      

  6.   

    to lyxinfo().
       感覺上您的SQL應該比竹兄的稍慢(沒試)。:)
    我機器的配置:
    塞揚II 566+ 256M RAM+ WIN2K+SQL2k
      

  7.   

    测试了一下:
    使用newid(),32秒生成524288条记录
    使用convert(int,PartCode) + @count ,需29秒
    不经过转换,直接采用PartCode + @count,40秒上述结果是在机器运行情况大体相同下的一次结构,没有求平均值。
    PIII800,384M内存感觉上可能采用newid()函数要消耗更多的系统资源?
    如果不使用convert()可能需要系统自动判断,反而速度变慢
      

  8.   

    我测试,是会快大概两秒,
    XP1600 + 512M DDR + WIN2K+SQL2k
    newid()需要大约20秒,
    我的用大约18秒,不转换21秒。
    呵呵,作这个是挺好玩,日志飞涨,测试前要先清清日志,不然满了后自动增加严重影响性能。