代码之家  ›  专栏  ›  技术社区  ›  Aiden

试图在动态变量上启动标识的SQL

  •  1
  • Aiden  · 技术社区  · 6 年前

    简而言之,我有一个临时表,它存储了一系列数据。行数可以是动态的,具体取决于运行此查询的时间。然后我尝试修改表并添加一个标识,我想从我选择的一个定义值开始。 无论我尝试过什么,当查看数据时,Identity列总是以1____开始,而不是以我指定的值开始。

    --At this point of the code the data is already in the table!
    Set existingNumber =
    (
    --Get a number from a table
    )
    
    Set existingNumber = existingNumber + 1
    Alter table #myTable
    Add testID bigINT Identity
    DBCC CHECKIDENT (#myTable, RESEED, @existingNumber)
    

    有没有一种方法可以简单地为预先存在的值重新启动标识列?

    我尝试过用表创建标识,但这又导致了另一个问题,因为我们的公司框架很不幸。

    编辑:

    使用SQL Management Studio

    1 回复  |  直到 6 年前
        1
  •  0
  •   Cookie Monster    6 年前

    您的@existingnumber变量设置不正确。 下面的示例工作正常。

    declare @existingNumber int = 1000
    create table #test (col1 varchar(20))
    alter table #test add testId bigint Identity
    
    dbcc checkident (#test, reseed, @existingNumber)
    
    insert into #test values ('test record')
    
    select * from #test
    
    drop table #test