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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM