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