【问题标题】:Reset auto-incrementing column重置自增列
【发布时间】:2010-10-10 05:28:54
【问题描述】:

我最近将项目添加到 ID 并且表格在传输过程中搞砸了,所以我从表格中删除了项目。在重新输入数据而不是从 1 开始的 ID 后,它现在从 332 开始。我想让表格从 1 开始而不是 332。我已经从数据中删除了数据,所以很清楚。如何将 ID 重置为一个。 谢谢和抱歉,如果这个地方在我不知道如何搜索的地方。

【问题讨论】:

    标签: sql auto-increment


    【解决方案1】:

    truncate table yourtable --将重新播种

    【讨论】:

      【解决方案2】:

      假设 MSSQL:

      DBCC CHECKIDENT('MyTable', RESEED, 0) -- One less than next ID to allocate
      

      如果你也想删除数据,你可以使用

      TRUNCATE TABLE MyTable
      

      但是您不能在由外键引用的表上使用 TRUNCATE TABLE,或者如果该表是索引视图的一部分,并且与 DELETE MyTable 不同,表上的任何触发器都不会'不会被激活。

      【讨论】:

        【解决方案3】:

        在 SQL Server 中:

        DBCC CHECKIDENT (myTable, RESEED, 0)
        

        【讨论】:

          【解决方案4】:

          将起始标识值设置为 1

          DBCC CHECKIDENT (tableName, RESEED, 1)
          

          【讨论】:

            【解决方案5】:

            如果您使用的是 MS Access,请删除并重新创建表

            【讨论】:

            • 压缩和修复足以重置自动编号,但是,如果有人担心自动编号的值,他们很可能错过了这一点,接下来会希望它是连续的,这在一张桌子的整个生命周期内是不可能的。
            【解决方案6】:

            你需要截断表格

            但这样做是空的,并且根本没有附加任何外键

            【讨论】:

            • 你可以截断一个包含数据的表,这只是一个不记录的删除。
            猜你喜欢
            • 2019-05-11
            • 1970-01-01
            • 2011-08-01
            • 2011-11-21
            • 1970-01-01
            • 2014-01-17
            • 1970-01-01
            • 2018-02-10
            • 2017-01-02
            相关资源
            最近更新 更多