我正在SQL Server Management 18上运行MS Access数据库。由于某种原因,当我创建一个新条目时,只是跳过了994个索引号。我上次索引的号码是19311,然后在被捕获时突然跳到20305。我该怎么做才能让它从19311开始重新运行?
答案 0 :(得分:1)
这很正常。
在提交查询之前分配了一个身份种子。这意味着,如果您运行的查询插入了100条记录,但是在收到提示时,如果您实际上要添加100条记录,请按“取消”,则身份种子仍会增加100。复制粘贴记录的计数相同,并且很多,许多其他操作。
您不需要阻止这种情况的发生。身份值并不意味着传达任何含义,并且不应该真正更改它们。如果您将“身份”列设置为Int(8)
或Long Integer
,则仍有大量数字可供使用。
SQL Server明确阻止更新标识列,并且您也不能在初始设置的种子下方重新设置唯一列的种子。这意味着:一旦插入号码20305,就无法将其重置为比20305小的数字。
您可以通过以下方法解决此限制:删除所有高于20305的记录,然后使用表名在SQL Server上运行DBCC CHECKIDENT ( table_name )
,以将种子重置为最高出现值。然后,您可以重新添加已删除的记录。
请查看更多on this Q&A,以挽回丢失的号码,尽管我当然建议不要这样做。