Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 以10k的批量遍历临时表数据_Sql_Sql Server 2008 - Fatal编程技术网

Sql 以10k的批量遍历临时表数据

Sql 以10k的批量遍历临时表数据,sql,sql-server-2008,Sql,Sql Server 2008,我的临时表中有大约600万个条目,我希望在其中一个表中以10k为批次执行更新 例如: 在这里,我在数据中插入640万个ID 然后我应用while循环,如下所示 WHILE @Counter < = (SELECT COUNT(1) FROM #Data) begin --perform update in my main table on basis of ID SET @Counter = @Counter + 1 end 这需要花费大量的时间,所以我想批量执行10k的更新,为什

我的临时表中有大约600万个条目,我希望在其中一个表中以10k为批次执行更新

例如:

在这里,我在数据中插入640万个ID

然后我应用while循环,如下所示

WHILE @Counter < = (SELECT COUNT(1) FROM #Data)
begin

--perform update in my main table on basis of ID

SET @Counter = @Counter + 1

end

这需要花费大量的时间,所以我想批量执行10k的更新,为什么不在一个语句中完成呢?我不确定您的update语句是什么,但下面是一个示例:

update m
    set col = d.processed
    from maintable m join
         #data d
         on m.id = d.idt;

请避免将LAC作为一个单元使用。在印度次大陆以外的地方还不太清楚。你能给我们看一下最新情况吗?
update m
    set col = d.processed
    from maintable m join
         #data d
         on m.id = d.idt;