Identity列经DBCC RESEED重置后插入起始值异常,求从1开始的解决办法
解决方案
核心问题:DBCC命令语法错误
你当前使用的DBCC ('table', reseed, 0)是错误的,正确的重置标识列种子的命令是DBCC CHECKIDENT,语法错误导致种子值未被正确重置,这是插入起始值为57的关键原因。
正确操作步骤
严格按以下顺序执行:
- 删除表A所有记录:
DELETE FROM 表A - 重置标识列种子:
DBCC CHECKIDENT ('表A', RESEED, 0) - 插入新记录
验证种子值
执行完前两步后,可通过以下语句确认种子值是否正确设置为0:
SELECT IDENT_CURRENT('表A') AS CurrentSeed;
若返回结果为0,下一次插入的第一条记录的Identity值就会是1(因你的标识列配置为(1,1),种子0+增量1=1)。
额外排查点
如果执行上述步骤后仍出现起始值异常,检查是否有其他脚本(如定时任务、触发器、导入工具的附加操作)在导入流程中修改了表A的标识种子。
内容的提问来源于stack exchange,提问作者Bhaskar Rai
相关产品推荐
相关产品推荐

