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

时间:2014-04-22 11:06:59

标签: 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

现在,对于CustomformID中的WorkFlow_CustomformColumns,我需要添加从250增加到300的值

2 个答案:

答案 0 :(得分:6)

可以<{1}}中的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; CustomerFormId列,并让数据库为ID分配唯一的数字。

答案 1 :(得分:0)

如果CustomFormId是标识列,那么我们可以使用DBCC CHECKIDENT在插入数据之前使用RESEED new_reseed_value指定新的种子值:

DBCC CHECKIDENT ('dbo.Workflow_CustomFormColumns', RESEED, 250);

Check DEMO here.