【问题标题】:SQL Server : alter the Identity seedSQL Server:更改身份种子
【发布时间】:2019-04-29 15:33:35
【问题描述】:

我正在将数据从一个数据库迁移到另一个数据库。我的脚本大部分已经放在一起,但我正在尝试找出对新数据库中的表进行一次更改的最佳方法。

我有一个Customer 表。该表有一个customer_id 列,它是标识列。我想将身份种子/增量从 (1,1) 更改为 (200,1),而不更改我将插入表中的现有数据的 customer_ids。

旧数据是 101-108。基本上我们希望旧数据保持不变,以便与其他系统中的旧记录匹配,但我们希望新数据从 200 开始播种。

我尝试了谷歌搜索如何做到这一点,但我所有的谷歌搜索都返回了人们想要更改身份列的结果,而不仅仅是更改身份种子编号。是否有一个简单的查询可以用来完成我想做的事情?

【问题讨论】:

标签: sql sql-server ssms


【解决方案1】:

我会做什么将新列取消设置为标识(使用更改表),然后从旧表中插入数据,然后再次将新列重置为标识,根据链接使用您想要的任何增量

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql-identity-property?view=sql-server-2017

【讨论】:

    【解决方案2】:

    您可以使用 DBCC CHECKIDENT:

    DBCC CHECKIDENT ('dbo.customer', RESEED, 200)
    

    这将更改指定表的标识列的当前种子值。如果你需要插入特定的标识值,你可以在你的插入语句中SET IDENTITY_INSERT ON

    IDENTITY_INSERT

    【讨论】:

      猜你喜欢
      • 2011-01-09
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2016-03-19
      • 2016-09-26
      • 1970-01-01
      相关资源
      最近更新 更多