日期:2014-05-17  浏览次数:20531 次

我想做一个测试,如何向mssql快速插入10亿条数据。
本帖最后由 phpcainiao 于 2013-08-28 09:35:01 编辑
字段有ID(int,自动编号) title(char)
title的内容可以相同。。。或者是title1,title2,title3和id一样自动增长。。

求快速插入的办法。

或者是分段插入。
比如一次性插入一百万,或者一千万条数据,因为要考虑pc机器的性能,求各位大侠支招。。

------解决方案--------------------
--SQL:
;WITH 
cte1 AS(SELECT num = 1 UNION ALL SELECT 1),
cte2 AS(SELECT num = 1 FROM cte1 a, cte1 b),
cte3 AS(SELECT num = 1 FROM cte2 a, cte2 b),
cte4 AS(SELECT num = 1 FROM cte3 a, cte3 b),
cte5 AS(SELECT num = 1 FROM cte4 a, cte4 b),
cteNum as(SELECT num = ROW_NUMBER() OVER(ORDER BY GETDATE()) FROM cte5)
INSERT INTO tb(title)
SELECT TOP(10000000) --1千万
'title'+LTRIM(num)
FROM cteNum

------解决方案--------------------

create table ph
(ID int identity(1,1), title char(50))

set nocount on
declare @x int
select @x=1
while(@x<=1000000000)
begin
 insert into ph(title) values('title'+rtrim(@x))

 select @x=@x+1
end
set nocount off