1

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

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

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

4

1 回答 1

1

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

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

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

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

或者您可以添加一个 ID = 1000 的虚拟行TestTable,并确保您永远不会删除该行。但这很丑陋。

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

于 2012-12-13T18:40:30.010 回答