我正在尝试批量将一张表的行插入到另一张表中。
DECLARE @batch INT = 10000;
WHILE @batch > 0
BEGIN
BEGIN TRANSACTION
INSERT into table2
select top (@batch) *
FROM table1
SET @batch = @@ROWCOUNT
COMMIT TRANSACTION
END
它运行在前10000个并插入它们。然后我收到错误消息“无法插入重复关键字”,因为它尝试插入相同的主键,所以我认为它正在尝试重复相同的批处理。我错过了什么逻辑来循环遍历批处理?这里可能有些简单,但我想不出来。
有人可以帮忙吗?谢谢