我有一条INSERT INTO ... SELECT语句将数据从一个表复制到另一个表。
INSERT INTO ... SELECT
但问题是,第二个表中的AutoNumber列值从第一个表中的最后一个数字开始。 这意味着第一个表的计数是2000,然后,第二个表从2001开始。
使用Access数据库时,如何重设此值?
您可以从ADO执行Access DDL语句以重置自动编号种子值。这是立即窗口会话的示例:
strDdl = "ALTER TABLE Dummy ALTER COLUMN ID COUNTER(1, 1);" CurrentProject.Connection.Execute strDdl
该语句必须从ADO执行。如果您使用DAO(例如CurrentDb.Execute strDdl)或通过Access查询设计器尝试失败,它将失败。该示例成功,因为CurrentProject.Connection是一个ADO对象。
CurrentDb.Execute strDdl
CurrentProject.Connection
后面的两个值COUNTER是 seed 和 crement 。因此,如果我希望自动编号从1000开始并增加2,则可以使用COUNTER(1000, 2)
COUNTER
COUNTER(1000, 2)
如果表中包含数据,则种子值必须大于最大存储值。如果执行语句时表为空,则不会有问题。