others - SQL Server如何批量插入?

我嘗試將行從一個表插入另一個表。


DECLARE @batch INT = 10000;



WHILE @batch > 0


BEGIN


BEGIN TRANSACTION



 INSERT into table2


 select top (@batch) *


 FROM table1



 SET @batch = @@ROWCOUNT



COMMIT TRANSACTION



END



它在前10,000個上成功插入。然後,我得到錯誤消息"Cannot insert duplicate key",它試圖插入相同的主鍵。

时间: 原作者:

你需要某種方法來消除現有行,


INSERT into table2


 SELECT TOP (@batch) *


 FROM table1 t1


 WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t2.id = t1.id);



原作者:
...