我使用的是 SQL Server 2014。
在我的表中,我为列设置了主键。主键值从1开始。我想将其更改为从0开始。我该如何实现?
最佳答案
如果表为空,最简单的做法是删除表并使用身份种子 0 重新创建它,例如 GuidoG做过。如果表有数据,将主键更改为 0(如 Intern87 提及)将是一个坏主意,因为在它插入一个键为 0 的行之后,下一个键将是 1,这可能已经在表中因此会导致进一步的插入失败并出现主键重复错误。
因此,如果您有现有数据,但必须具有键为 0 的数据,我可能只对第 0 行执行身份插入。使用以下方法执行此操作
SET IDENTITY_INSERT mytable ON;
INSERT INTO mytable (id, col1, col2, etc..)
VALUES (0, 'col1data','col2data', etc..);
SET IDENTITY_INSERT mytable OFF;
只需确保一次运行所有这些,因为一旦您打开身份插入,其他插入可能会失败,直到您将其关闭。
关于sql - sqlserver中如何修改主键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43138948/