35

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

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

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

4

2 回答 2

63

如果使用DBCC CHECKIDENT命令:

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

请谨慎使用!- 这只会将值重置IDENTITY为 1 - 因此您的下一个插入将获得值 1,然后是 2,然后是 3 --> 您将在这里与您预先存在的值 3 发生冲突!

IDENTITY只需按顺序排列数字 - 它绝不会确保没有冲突!如果您已经有值 - 不要重新设置为较低的值!

于 2012-12-13T10:43:00.253 回答
20

我正在使用SQL Server 2012,并且在下一次插入时 DBCC CHECKIDENT ("YourTableNameHere", RESEED, 1)导致值为。2

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

DBCC CHECKIDENT ("YourTableNameHere", RESEED, 0);  -- value will be 1 for the next record insert
于 2014-04-04T23:16:01.397 回答