我向数据库中插入1000条数据,可是为什么最后却是1022条呢?我实在是看不出是哪儿错了,希望高人能提示我一下。谢谢哈use test
go
declare @num int
set @num=0
while @num<1000
begin
insert into input(name, price) values('面包',100)
insert into input select * from input
set @num=(select COUNT(*) from input)
end结果却为:1022条

解决方案 »

  1.   

    你确认 @num=(select COUNT(*) from input)满足每次加1,打印出来看看吧,而且,你里面用了两次 insert语句,对同一个input 表
      

  2.   


    insert into input(name, price) values('面包',100)
    insert into input select * from input能解释一下你这句的意图么
      

  3.   

    就是这句出错了insert into input select * from input你再次插入你从input 表查出的数据,这些数据已经不止一条了
      

  4.   

    use test
    go
    declare @num int
    set @num=0
    while @num<1000
    begin
    insert into input(name, price) values('面包',100)
    end
    set @num=(select COUNT(*) from input)你再试下,,,看成不成
      

  5.   

    sorry写错use test
    go
    declare @num int
    set @num=0
    while @num<1000
    begin
    insert into input(name, price) values('面包',100)
    set @num = @num + 1
    end
    print @num
      

  6.   

    declare @num int
    declare @TEMP int
    set @num=0
    SET @TEMP = 1
    while @num<1000
    begin
    insert into input(name, price) values('面包',100)
    insert into input select * from input
    set @num=(select COUNT(*) from input)
    PRINT '循环次数:'+CONVERT(NVARCHAR(10),@TEMP)+',总记录数:' + CONVERT(NVARCHAR(10),@num)
    set @TEMP = @TEMP +1
    end
      

  7.   

    你的这种循环 每次插入的 数据是上次插入数据+1 再乘以2数据库里面的 记录等于 (@num+1)*2,循环每次迭代 也是这样的