怎么用存储过程 快速往表里插入1000条数据?

解决方案 »

  1.   

      col_no(int)  data(float)   val_date(varchar)
    ----------------------------------------------------
         1           1.23            2007/01/01 00:00:01
    我想插入col_no(1 到 1000)     val_date 是从2007/01/01  到2007/01/30的1000条数据! 
      

  2.   

        col_no(int)     data(float)       val_date(varchar) 
    ---------------------------------------------------- 
              1        1.23     2007/01/01   00:00:01 
    我想插入col_no(1   到   1000)           val_date   是从2007/01/01     到2007/01/30的1000条数据! 
      

  3.   

    --给你一个sample ,插入1W条记录的方法.参考下:create table table1(Seq_no int,time datetime,Data1 float)
    go
    create table table2(Seq_no int,time datetime,Data2 float)
    go
    create table table3(Seq_no int,time datetime,Data3 float)
    godeclare @i int,@time datetime
    select @i=1,@time='2007-12-31 19:31:52.577'
    while @i<=10000
    begin
    insert into table1(Seq_no,time,data1)
    select @i,@time,rand()*0.00000001
    insert into table2(Seq_no,time,data2)
    select @i,@time,rand()*0.00000001
    insert into table3(Seq_no,time,data3)
    select @i,@time,rand()*0.00000001
    select @i=@i+1,@time=dateadd(ss,@i+1,getdate())
    end/*
    drop table table1
    go
    drop table table2
    go
    drop table table3
    */
      

  4.   

    to  sunhonglei2004 
    -------------------------是新建的表
      

  5.   


    参考:
    --建环境
    create table table1(col_no int,data float,val_date varchar(20))
    go--循环
    declare @i int,@time datetime
    select @i=1,@time='2007-12-31 19:31:52.577'
    while @i<=1000
    begin
    insert into table1(col_no,data,val_date)
    select @i,rand()*10,@time
    select @i=@i+1,@time=dateadd(ss,@i+1,getdate())
    end
    --删除环境
    drop tale table1--建议: 如果数据表多,您可以使用PD,能生成各种定义的数据.操作也简单,方便.
    --上面是用SQL建的测试环境
      

  6.   


    create procedure por
    as
    begin
    set nocount on declare @i int,@time datetime
    select @i=1,@time='2007-12-31 19:31:52.577'
    while @i<=1000
    begin
        insert into table1(col_no,data,val_date)
        select @i,rand()*10,@time
        select @i=@i+1,@time=dateadd(ss,@i+1,getdate())
    end
    set nocount offend