循环插入
create table #tb2
( id int, name nvarchar(30), createTime datetime)declare @i intdeclare @sql varchar(1000)set @i=0while (@i<100000) --循环插入10w条数据begin set @i=@i+1 set @sql=' insert into #tb2 values('+convert(varchar(10),@i)+',''erzi'+convert(nvarchar(30),@i)+''','''+convert(nvarchar(30),getdate())+''')' exec(@sql)end--DROP TABLE #tb2SELECT * FROM #tb2执行时间
批量插入
create table #tb2( id int, name nvarchar(30), createTime datetime)declare @i int
declare @sql varchar(8000)declare @j intset @i=0while (@i<10000) --循环插入10w条数据begin set @j=0 set @sql=' insert into #tb2 select '+convert(varchar(10),@i*100+@j)+',''erzi'+convert(nvarchar(30),@i*100+@j)+''','''+convert(varchar(50),getdate())+'''' set @i=@i+1 while(@j<10) begin set @sql=@sql+' union all select '+convert(varchar(10),@i*100+@j)+',''erzi'+convert(nvarchar(30),@i*100+@j)+''','''+convert(varchar(50),getdate())+'''' set @j=@j+1 end exec(@sql)end--drop table #tb2
select * FROM #tb2执行时间
总结:明显批量插入效率比循环插入效率高