如何重置Access表的自动编号字段?(它不是从1开始)

Luc*_*uan 5 sql ms-access autonumber sql-insert

我有一个INSERT INTO ... SELECT声明,将数据从一个表复制到另一个表.

但事实是,第二个表中的AutoNumber列值是从第一个表中的最后一个数字开始的.
意味着第一个表的计数是2000,那么,第二个表从2001年开始.

使用Access数据库,如何重置此值?

Han*_*sUp 5

您可以从 ADO 执行 Access DDL 语句来重置自动编号种子值。这是立即窗口会话的示例:

strDdl = "ALTER TABLE Dummy ALTER COLUMN ID COUNTER(1, 1);"
CurrentProject.Connection.Execute strDdl
Run Code Online (Sandbox Code Playgroud)

该语句必须从 ADO 执行。如果您使用 DAO(例如CurrentDb.Execute strDdl)或从 Access 查询设计器尝试,它将失败。该示例成功,因为它CurrentProject.Connection是一个 ADO 对象。

接下来的两个值COUNTER种子增量。因此,如果我希望自动编号从 1000 开始并递增 2,我可以使用COUNTER(1000, 2)

如果表包含数据,则种子值必须大于最大存储值。如果执行该语句时表为空,则不会出现问题。