Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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 使用order by更新查询_Sql_Sql Update_Sql Order By - Fatal编程技术网

Sql 使用order by更新查询

Sql 使用order by更新查询,sql,sql-update,sql-order-by,Sql,Sql Update,Sql Order By,我正在尝试根据另一个短列更新一个列。我使用的是orderby,但在使用选择top(10000)时,我的增量数为4000系列,但我需要从101开始,但最初我声明int 100 DECLARE @IncrementValue int SET @IncrementValue = 100 UPDATE CabecDoc SET CDU_NumberBook = @IncrementValue, @IncrementValue = @IncrementValue + 1 FROM (

我正在尝试根据另一个短列更新一个列。我使用的是
orderby
,但在使用
选择top(10000)
时,我的增量数为4000系列,但我需要从101开始,但最初我
声明int 100

DECLARE @IncrementValue int
SET @IncrementValue = 100

UPDATE CabecDoc 
SET CDU_NumberBook = @IncrementValue,
    @IncrementValue = @IncrementValue + 1 
FROM
    (SELECT TOP(7000) *
     FROM CabecDoc
     WHERE data BETWEEN '2019-05-01' AND '2019-07-17'
       AND Entidade = 'VD4' 
       AND tipodoc = 'VD' AND CDU_SimbolBook = '*'
     ORDER BY NumDoc ASC) CabecDoc 

我需要通过7000条记录将列从101更新为增量。

以下是您需要的。不需要声明变量

UPDATE
  CabecDoc
SET
  CDU_NumberBook = 100 + RowNum
FROM
  (
    Select
      top(7000) *,  
      ROW_NUMBER() OVER(
        ORDER BY
          NumDoc
      ) AS RowNum
    FROM
      CabecDoc
    WHERE
      data between '2019-05-01'
      and '2019-07-17'
      and Entidade = 'VD4'
      and tipodoc = 'VD'
      and CDU_SimbolBook = '*'
    ORDER BY
      RowNum ASC
  ) CabecDoc