Luc*_*uan 5 sql ms-access autonumber sql-insert
我有一个INSERT INTO ... SELECT声明,将数据从一个表复制到另一个表.
但事实是,第二个表中的AutoNumber列值是从第一个表中的最后一个数字开始的.
意味着第一个表的计数是2000,那么,第二个表从2001年开始.
使用Access数据库,如何重置此值?
您可以从 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)
如果表包含数据,则种子值必须大于最大存储值。如果执行该语句时表为空,则不会出现问题。