码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2016-08-10 18:53:32      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

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

  

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

标签:

原文地址:http://www.cnblogs.com/moonliu/p/5757620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!