如题 。
如果一条条数据往里面插,这是很不现实的。会浪费很多时间的。有没有快速一点的方法啊?
我查了一下。看到网上有这么一个方法,也不知道对不对。请高手指点下。
以下是原文。哈,自己想到一个很有意思的办法,类似使用二分法进行搜索一样的原理。 
我的思路就是,想往数据库中插入一条记录,然后使用insert into tableA select * from tableA这样的方式来插入,这样一次就可以插入上一次插入的数目。第一次插入1条,接下来分别插入2,4,8,16,32,64,128,。 
很快就到100万了,使用这样的方式插入100万条数据还不到4秒(服务器配置)。 
为了生成尽可能随机的数据,我后面在select from tableA的时候对各个字段做了一些处理 
create table #tmp 

id int, 
name varchar(64), 
age int 

set nocount on 
insert into #tmp values(1,'ceshi',20) 
declare @max int = 1 
while @max < 1000000 
begin 
insert into #tmp select id+@max,convert(varchar,RAND(20)*1000000),convert(int,RAND()*100) from #tmp 
set @max = @max * 2 
end 
select COUNT(*) from #tmp 
 
做的处理实际上比较简单,首先id要连续增长,所以每次都要加上上一次插入之后的id最大值,age就是个100以内的随机正整数,name是个随机正整数。实际应用可以替换成函数。 
 
而使用while一条一条插入的话,时间为35秒(服务器配置) 
create table #tmp 

id int, 
name varchar(64), 
age int 

set nocount on 
declare @i int = 1 
while @i < 1000000 
begin 
insert into #tmp values( @i,convert(varchar,RAND(20)*1000000),convert(int,RAND()*100)) 
set @i = @i + 1 
end 
select COUNT(*) from #tmp 
drop table #tmp 
 
-- 
------------------------------------------------ 
技术博客:http://www.imkevinyang.com/ 
请问这样的方法对吗?