Reset autonumber seed

风流意气都作罢 提交于 2019-12-29 07:42:03

问题


I have a VB6/Access application that occasionally encounters a problem with wrong autonumber field seed.

Lets say there is a table MYTABLE with an autonumber field ID (that is also the primary key). Lets say at the moment the maximum value of ID is 1000. When the application inserts a new record (ID value is not provided explicitly), for some reason it decides that the next autonumber field value is 950 (and not 1001 as it should be) - so a primary key violation error occurs.

I found a KB article that describes my symptoms: http://support.microsoft.com/kb/884185 . In short, they suggest to run a query:

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

When I try to do this, it fails with "Invalid field data type"

The problem gets fixed if I open the database in Access and do compact/repair, but I need to be able to fix such problems inside the application: it is installed on a couple of thousands of PCs around the world, and asking people to compact/repair with Access is not an option.

I use DAO DBEngine.CompactDatabase to perform compact/repair inside the application, but it doesn't fix the seed problem, and some additional tricks are needed.

I hope somebody has an idea for a solution, I'm really close to desperate

Thanks all


回答1:


Please reference the following article, it contains a method you may add to your access project to execute to reset seeding. It has been a saver for me several occasions in the past:

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

In addition to this it gives explanation and insight into causes and potential resolution for such problems.




回答2:


You may also need to make sure that your database is set up to use ANSI 92 so that COUNTER is recognized as a legitimate data type.

In Access 2007 go to Access Options, Object Designers, SQL Server compatability syntax (ANSI 92) to set this.




回答3:


You may be able to solve the problem with a compact/repair:

In Access 2010:  Compact and Repair Database on the Database Tools ribbon.
In Access 2007:  Office Button | Manage.
In earlier versions:  Tools | Database Utilities.


来源:https://stackoverflow.com/questions/2290938/reset-autonumber-seed

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!