【发布时间】:2009-06-04 21:32:19
【问题描述】:
只是好奇,当我将包含 519 行的电子表格中的数据导入一个空表时,为什么我的自动编号键从 56,557,618 开始?这能有多大?我不想让我的主键字段的数字用完,因为我什至还没有开始这个项目,而且我希望经常转储电子表格。
【问题讨论】:
标签: database ms-access-2007 overflow containers autonumber
只是好奇,当我将包含 519 行的电子表格中的数据导入一个空表时,为什么我的自动编号键从 56,557,618 开始?这能有多大?我不想让我的主键字段的数字用完,因为我什至还没有开始这个项目,而且我希望经常转储电子表格。
【问题讨论】:
标签: database ms-access-2007 overflow containers autonumber
您可以在不压缩和修复的情况下重置自动编号:
CurrentDb.Execute "ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)"
在运行 SQL 之前,您必须确保表为空,否则您将让 Access 尝试创建重复的自动编号。
【讨论】:
即使在空表上,Access 也会记住它给出的最后一个 ID。要重置自动编号,您必须在清空表后压缩/修复数据库
此外,自动编号是一个长整数,在 Access 中可以达到 2,147,483,647
【讨论】:
您还可以通过创建包含自动编号列的附加查询来重置自动编号。追加一行后,数字将设置为追加的值 + 1。
这样做你必须小心该值不小于当前的最高值。
例如
INSERT INTO tblName ( id )
SELECT [tblName]![id]+1 AS [New Value]
FROM tblName
GROUP BY [tblName]![id]+1, tblName.id
HAVING (((tblName.id)=(Select max(id) from tblName)));
会将自动编号重置为最后一个数字的 + 2。请注意,您必须包含所有必填列,然后删除新行。
【讨论】: