【发布时间】:2012-12-01 05:42:04
【问题描述】:
我创建了一个主键来自动递增。
- 我添加了两行:
ID=1, ID=2 - 我删除了这两行。
- 我添加了一个新行,但新行的 ID 是:
ID=3
如何将自动增量重置或重新启动为 1?
【问题讨论】:
标签: sql-server-2008-r2 auto-increment identity-column
我创建了一个主键来自动递增。
ID=1, ID=2
ID=3
如何将自动增量重置或重新启动为 1?
【问题讨论】:
标签: sql-server-2008-r2 auto-increment identity-column
如果您使用DBCC CHECKIDENT 命令:
DBCC CHECKIDENT ("YourTableNameHere", RESEED, 1);
但是谨慎使用! - 这只会将IDENTITY 重置为 1 - 所以你的下一个插入将获得值 1,然后是 2,然后是 3 --> 你将拥有在这里与您先前存在的 3 值发生冲突!
IDENTITY 只是按连续顺序排列数字 - 它确实不以任何方式确保没有冲突!如果您已经有了值 - 请不要重新设置为较低的值!
【讨论】:
我正在使用 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
【讨论】: