在 Microsoft SQL Server 2008 R2 中重置自动增量
Posted
技术标签:
【中文标题】在 Microsoft SQL Server 2008 R2 中重置自动增量【英文标题】:Reset autoincrement in Microsoft SQL Server 2008 R2 【发布时间】:2012-12-01 05:42:04 【问题描述】:我创建了一个主键来自动递增。
我添加了两行:ID=1, ID=2
我删除了这两行。
我添加了一个新行,但新行的 ID 是:ID=3
如何将自动增量重置或重新启动为 1?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于在 Microsoft SQL Server 2008 R2 中重置自动增量的主要内容,如果未能解决你的问题,请参考以下文章
客户端统计表 (Microsoft SQL Server Management Studio)
Microsoft SQL Server 2016,T-SQL:根据各个日期获取数据集的日期范围
P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1
SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序:错误代码 0x2746
Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝