sql – 重置自动编号种子

我有一个VB6 / Access应用程序偶尔遇到错误自动编号字段种子的问题.

假设有一个带有自动编号字段ID的表MYTABLE(也是主键).让我们说目前ID的最大值是1000.当应用程序插入新记录(未明确提供ID值)时,由于某种原因,它决定下一个自动编号字段值是950(而不是1001,因为它应该是) – 因此发生主键违规错误.

我发现了一篇描述我症状的知识库文章http://support.microsoft.com/kb/884185.简而言之,他们建议运行查询

ALTER TABLE MYTABLE ALTER COLUMN ID COUNTER(1001,1)

当我尝试这样做时,它失败并显示“无效的字段数据类型”

如果我在Access中打开数据库并进行压缩/修复,问题就解决了,但是我需要能够在应用程序中解决这些问题:它安装在全世界成千上万的PC上,并要求人们压缩/使用Access进行维修不是一种选择.

我使用DAO DBEngine.CompactDatabase在应用程序内执行压缩/修复,但它不能解决种子问题,还需要一些额外的技巧.

我希望有人有一个解决方案的想法,我真的很接近绝望

谢谢大家

解决方法

请参考以下文章,它包含一个方法,您可以添加到您的访问项目以执行重置种子.过去,它曾多次成为我的救星:

http://allenbrowne.com/ser-40.html

除此之外,它还解释并深入了解此类问题的原因和可能的解决方案.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...