SQL update \ loop查询

时间:2016-04-11 14:01:03

标签: sql-server sql-server-2008

我需要一些帮助来编写查询。

我有一种情况,我在数据库表中有近400000条记录。

我必须一次选择4000000行,并且每1000条记录我必须在循环中更新具有数值的列。

但是该数值必须每1000行增加一个。

例如,前1000行的数值为1.然后是第1000行,数值为2.重复该过程,所有记录都有一个值。

谢谢。

1 个答案:

答案 0 :(得分:1)

这是sql server在黑暗中的总镜头。不知道这是正确的DBMS还是你的任何专栏。但无论你是否需要使用循环来做这类事情。

with MyCTE as
(
    select *
        , ROW_NUMBER() over (order by Something) as RowNum
    from MyTable
)

update MyCTE
set SomeNumberColumn = (RowNum / 1000) + 1