当前位置: 代码迷 >> Sql Server >> select * INTO作批量插入
  详细解决方案

select * INTO作批量插入

热度:45   发布时间:2016-04-24 09:14:46.0
select * INTO做批量插入
有一张表T1,曾经做过备份,T2为历史数据,T1相对T2有增量数据。
现在想把T1对T2做增量抽取。
select * INTO T2 from T1
where not exists (select ID from T2 c where T2.ID=T1.ID) 

但是这个增量比较有几十万条,为提高效率,希望能做个批量插入,比如1000条commit一次,是否利用游标提高效率呢?请大侠帮忙想一下,谢谢。
------解决思路----------------------
WHILE @@ROWCOUNT>0
BEGIN
INSERT INTO T2
SELECT TOP 1000 * FROM T1
WHERE NOT EXISTS(SELECT ID FROM T2 C WHERE C.ID=T1.ID)
END

------解决思路----------------------
如果t1是自增ID,完全可以用下面的方式。
DECLARE @maxID int

SELECT @maxID = ISNULL(MAX(ID),0)
  FROM T2

INSERT INTO T2
SELECT *
  FROM T1
 WHERE ID > @maxID
  相关解决方案