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

时间:2022-09-20 19:49:28

因自己学习测试需要,需要两个有大量不重复行的表,表中行数越多越好。手动编写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