紧凑型和放大后访问自动编号序列已更改修理

时间:2012-12-13 17:53:01

标签: ms-access

我有一个访问数据库,我使用以下命令修改了一些表:

ALTER TABLE TestTable ALTER COLUMN ID AUTOINCREMENT(1001,1) 

此表的第一列ID为自动编号。我做了一个紧凑的&创建表后修复。但是在插入数据时,第一个id设置为1而不是1001.如果我不进行紧凑修复,则第一个Id按预期设置为1001。我无法控制何时执行紧凑修复。那么有没有办法确保ID始终在1001开始?

1 个答案:

答案 0 :(得分:1)

自动编号的种子值不是静态的。添加行后,种子将重置为上一个种子值加上增量。

compact的一个有意识的功能是根据自动编号字段中包含的当前值重置种子。

没有简单的简单解决方法。

您可以创建一个autoexec宏来检查自动编号的当前种子值,如果它低于1001,则执行您的DDL语句。这样可以按照您希望每次打开时设置它数据库。

或者您可以向ID为1000的TestTable添加一个虚拟行,并确保永远不会删除该行。但那很难看。

或者您可以创建ID Long Integer并创建自己的自定义自动编号代码以确定您存储的值。但这并不容易或不方便。