SQL Server 2008自增主键重置:如何指定新插入数据的ID值
重置SQL Server 2008自增主键起始值的解决方案
嘿,我之前也碰到过一模一样的问题——SQL Server的自增IDENTITY列就是这么“轴”,哪怕你删了之前的数据,它也会死死盯着上次的ID往下续。要让新插入的数据从17开始,用个系统命令就能搞定,步骤超简单:
具体操作步骤
- 先确认你的目标表名和自增列名,比如我的表叫
Customer,自增列是CustomerID,你替换成自己实际的名称就行。 - 打开SQL Server Management Studio(SSMS),执行下面的命令:
为啥填16不是17?因为RESEED是设置下一条插入数据的前置值,自增列会自动加1,所以设成16的话,下一条插入的ID刚好就是17,完美匹配你的需求。DBCC CHECKIDENT ('YourTableName', RESEED, 16); - 执行完命令后,你可以插一条测试数据验证效果,比如:
查一下表,这条新数据的ID肯定是17没错。INSERT INTO YourTableName (Name, Phone) VALUES ('测试用户', '138xxxxxxx');
重要注意事项
- 执行前最好先备份数据,或者先查一下表中现有数据的最大ID:如果现有ID已经大于等于17,插入新数据时会直接触发主键冲突错误,这时候你得先处理掉那些ID≥17的数据,或者根据实际情况调整RESEED的值。
- 如果表是空的,直接执行命令就没任何问题;如果还有存量数据,一定要确保现有最大ID小于17,不然强行重置很容易搞出数据冲突哦。
内容的提问来源于stack exchange,提问作者Ricky Reza Muhammad
相关产品推荐
相关产品推荐

