请参阅下面的图像(来自SQL Server Management Studio),我已经有一个包含记录的表,最后一条记录有一个id of 7
。我希望将此列自动递增作为主键(就像在进行一些未知填充之前所做的那样),显然下一个记录具有id of 8
。
将种子指定为7意味着下一个记录的ID将为7吗?还是(7 +增量值)等于8?
答案 0 :(得分:3)
SQL Server非常智能,您从1到8给出的任何值都只会从8开始。
例如,如果将Identity Seed
设置为1,并在表中插入一条记录,SQL将仅将新的Identity
计算为8。
如果仅在这种情况下指定> 8,它将考虑种子值。
注意:当您使用SSMS
实现此目的时,将在内部删除表,并使用正确的身份创建新表。
如果要使用sql查询来执行此操作,则必须遵循此answer
中提到的说明答案 1 :(得分:1)
假设您的桌子很大,那么您必须查询以找到最大ID
只需这样做
DBCC CHECKIDENT ('TableName', RESEED, 1)
答案 2 :(得分:-1)
我认为SQL Server将迫使您使用新的标识重新创建表,并且您将不得不将数据移到该表中,该表将从1开始并以1递增。