在SQL INSERT SELECT Query中添加增量编号序列

use*_*390 2 sql sql-server sql-server-2008

我有一个查询将值从一个表插入另一个表,如下所示.

 INSERT into Workflow_CustomFormColumns     
    (CustomFormId
     ,ColumnNumber
     ,ColumnTitle
     ,ColumnType
     ,ColumnListValues
     ,IsRequired,ColumnWidth
     ,Calculation)
 SELECT ColumnNumber
    ,ColumnTitle
    ,ColumnType
    ,ColumnListValues
    ,IsRequired
    ,ColumnWidth
    ,Calculation
 FROM Workflow_CustomFormTypeColumns
 WHERE CustomFormTypeId=66 
    and ColumnNumber>43
Run Code Online (Sandbox Code Playgroud)

现在的CustomformIDWorkFlow_CustomformColumns我需要添加哪些增量从250到300的值

Gor*_*off 6

可以row_number()在以下位置执行此操作insert:

INSERT into Workflow_CustomFormColumns(CustomFormId, ColumnNumber, ColumnTitle,
              ColumnType, ColumnListValues, IsRequired, ColumnWidth, Calculation
             )
    SELECT 249 + row_number() over (order by (select NULL)) as CustomerFormId,
          ColumnNumber, ColumnTitle, ColumnType, ColumnListValues, IsRequired, 
          ColumnWidth, Calculation
    from  Workflow_CustomFormTypeColumns
    where CustomFormTypeId = 66 and ColumnNumber > 43;
Run Code Online (Sandbox Code Playgroud)

但是,我很难想到你真正想要的情况.相反,你通常会创建CustomerFormIdidentity列,并让数据库为id分配唯一的数字.