访问:如何更改列以对抗 table 中的现有行?

Access: How to alter column to counter with existing rows in table?

我知道这不是简单的解决办法:

ALTER TABLE BLOCK ALTER COLUMN block_id COUNTER(5000,1) PRIMARY KEY; 
-- I get here error saying about wrong column type

因为 2 个原因:

我有这样的简化方案:

我需要在 block table block_id 栏和 record table record_id 栏中制作计数器。 Source 中的 Source_id 列已经是一个计数器。这里的问题是 tables 具有如附图所示的连接。而这3个table全都填满了数据

Max(block_id)  = 4129
Max(record_id) = 9047

而且我想让这个列成为一个计数器,从之前写入的 2 个值开始。有没有不做temp tables的解决办法?

没有临时 tables 是不可能做到这一点的。主键不是问题,但如果有数据,您永远不能将 INT 字段更改为自动编号。

您需要使用追加查询 (INSERT INTO) 将现有 ID 复制到带有自动编号的新 table 中。

这个link可能会给你一些想法:How to reset an AutoNumber field value in Access