【问题标题】:how to change identity increment of column如何更改列的标识增量
【发布时间】:2009-05-07 08:08:59
【问题描述】:

以下语句可以重置种子

DBCC CHECKIDENT ('TableName', RESEED, 1)

但这一次我必须改变它的增量。

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    或者您可以使用 Sql Server Management Studio:

    使用这种方法很可能会重新创建表。

    【讨论】:

      【解决方案2】:

      希望对你有帮助

       ALTER TABLE MyCustomers 
       ALTER COLUMN CustId IDENTITY (200, 2)
      

      来自 ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/ssmprog3/html/5719d3e4-14db-4073-bed7-d08f39416a39.htm 的代码

      【讨论】:

      • 这是一个“文档”错误。建议的语法将失败。您无法更改身份的增量值。您必须删除/重新创建列或表
      【解决方案3】:

      我们无法将列的标识更新为在每个条目上增加 2。最简单的方法是使用 IDENTITY(1,2) 创建另一个表,然后在删除实际表之前将数据移动到该表。请浏览下面的脚本。

      让 TableA 是我们的实际表。

      1. CREATE TABLE TableB(col1 INT IDENTITY (1,2) NOT NULL, col2 VARCHAR(10) NULL);
      2. 插入到表 B 中从表 A 中选择 col2;
      3. 删除表表 A;
      4. sp_rename 表 B、表 A;

      【讨论】:

        【解决方案4】:

        您可以通过以下方式将自动增量重置为更高的值

        1. 关闭 IDENTITY_INSERT
        2. 运行插入语句并将 ID 设置为您想要继续的位置
        3. 将 IDENTITY_INSERT 设置为开启
        4. 删除创建的行(假设它只是为了增加种子)

        例如;

        最后一个 ID = 10 的表 'People' 可以设置为从 400,000 继续;

        SET IDENTITY_INSERT AccessToken off
        insert into People(Id, name) values (400000,'Bob')
        SET IDENTITY_INSERT AccessToken on
        Delete from People where ID = 400000
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-11-26
          • 2022-12-10
          • 1970-01-01
          • 1970-01-01
          • 2016-04-18
          • 2018-12-27
          • 1970-01-01
          • 2017-09-05
          相关资源
          最近更新 更多