SQL Server批量向表中插入多行数据语句

因自己学习测试需要,需要两个有大量不重复行的表,表中行数越多越好。手动编写SQL语句,通过循环,批量向表中插入数据,考虑到避免一致问题,设置奇偶行不同。个人水平有限,如有错误,还望指正。

语句如下:

 1 --批量向表中插入大量数据语句(奇偶不同)
 2 
 3 --判断测试表是否存在,存在则先删除再创建
 4 if exists(select 1 from sysobjects where xtype='u' and name='table_test' )
 5 drop table table_test
 6 create table table_test(
 7 id int,
 8 name char(50),
 9 address char(50),
10 gender char(10)
11 )
12 
13 declare @n int
14 declare @name  varchar(50)--使用变量
15 declare @name1 varchar(50)--设置奇数用
16 declare @name2 varchar(50)--设置偶数用
17 declare @addre varchar(50)--使用变量
18 declare @sql varchar(200)
19 set @n=0
20 set @addre='的家'
21 set @name=' '
22 set @name1='Tom'
23 set @name2='Jarry'
24 while @n<998--不要2999,也不要1999,只要998,没错,只要998
25 begin
26     set @n=@n+1
27     if @n%2=1--奇数行
28     begin
29         set @name=@name1+convert(varchar,@n)--名字与编号组合,避免name列重复
30         set @addre=@name+@addre--地址由名字跟“的家”组合,避免不同
31         set @sql='insert into table_test (id,name,address,gender) values('+convert(int,@n)+','+@name+','+@addre+',''male'')'
32         set @addre='的家'--由于@address已经赋新值,手动恢复初始值,避免重复赋值导致字符超长
33         print(@sql)
34         exec(@sql)
35     end
36     else--偶数行
37     begin
38         set @name=@name2+convert(varchar,@n)
39         set @addre=@name+@addre
40         set @sql='insert into table_test (id,name,address,gender) values('+convert(int,@n)+','+@name+','+@addre+',''female'')'
41         set @addre='的家'
42         print(@sql)
43         exec(@sql)
44     end
45 end

 

这样便可以按照需求向表中批量插入多行。

我自己尝试插入了18750000行。

 

NiCE

  

posted @ 2016-08-10 17:25  Mr.MoonLiu  阅读(10648)  评论(3编辑  收藏  举报