【问题标题】:Reset autoincrement in Microsoft SQL Server 2008 R2在 Microsoft SQL Server 2008 R2 中重置自动增量
【发布时间】:2012-12-01 05:42:04
【问题描述】:

我创建了一个主键来自动递增。

  • 我添加了两行:ID=1, ID=2
  • 我删除了这两行。
  • 我添加了一个新行,但新行的 ID 是:ID=3

如何将自动增量重置或重新启动为 1?

【问题讨论】:

    标签: sql-server-2008-r2 auto-increment identity-column


    【解决方案1】:

    如果您使用DBCC CHECKIDENT 命令:

     DBCC CHECKIDENT ("YourTableNameHere", RESEED, 1);
    

    但是谨慎使用! - 这只会将IDENTITY 重置为 1 - 所以你的下一个插入将获得值 1,然后是 2,然后是 3 --> 你将拥有在这里与您先前存在的 3 值发生冲突!

    IDENTITY 只是按连续顺序排列数字 - 它确实以任何方式确保没有冲突!如果您已经有了值 - 请不要重新设置为较低的值!

    【讨论】:

    • 我忘了说,我正在使用 Management Studio,所以我想用 Management Studio 重新播种
    • @victorio: 只需打开一个新的查询窗口并执行这个 T-SQL 命令!
    • 我正在使用 SQL Server 2008 并重置为值 1 我必须在最后一个参数上输入 0,然后:DBCC CHECKIDENT ("YourTableNameHere", RESEED, 0);
    【解决方案2】:

    我正在使用 SQL Server 2012,而 DBCC CHECKIDENT ("YourTableNameHere", RESEED, 1) 在下一次插入时会产生 2 的值。

    因此,对于 SQL Server 2012,将 1 更改为 0 以获取 1 的值以进行下一条记录插入:

    DBCC CHECKIDENT ("YourTableNameHere", RESEED, 0);  -- value will be 1 for the next record insert
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-28
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多