【sql server】表内批量插入数据

上一篇 / 下一篇  2015-04-21 16:17:57 / 个人分类:性能

数据库中,批量插入数据有多种方式。
前提:向表iminvbin_sql中插入大量数据,其中item_no,loc,bin_no字段取值随机从其他表或是当前表取值,qty_on_hand等字段为固定值,其他可为空字段直接为空。

方法一:一条条插入,代码如下
--声明变量
declare @currentId numeric(9, 0)
declare @item_no char(30)
declare @loc char(3)
declare @bin_no char(8)



----------插入10000条数据
set @currentId =(select max(id) from iminvbin_sql)
declare @i int
set @i=1
while @i<=1000
begin
 --生成id
 set @currentId=@currentId+1
 
 --生成
 set @item_no=(select top 1 item_no from iminvbin_sql ORDER BY NEWID() )
 
 --生成姓名
 set @loc=(select top 1 loc from iminvbin_sql ORDER BY NEWID() )
 set @bin_no=(select top 1 bin_no from iminvbin_sql ORDER BY NEWID() )

  
 --插入表中
 insert into iminvbin_sql(item_no,loc,bin_no,bin_priority,issue_priority,issue_pri_tm,qty_on_hand,id)
      values(@item_no,@loc,@bin_no,98,98,0,0,@currentId)
      
  set @i=@i+1
end
这个程序比较简单,但是会拖垮数据库的性能。数据量大的时候,明显是不适用的。

方法二:



TAG: server Server

 

评分:0

我来说两句

Open Toolbar