如何使用SQL更改MS Access中的表以将数据类型更改为自动编号?
我试图跟随但没有成功
ALTER TABLE PERSON ALTER COLUMN PERSON_ID Integer PRIMARY KEY counter
);
ALTER TABLE PERSON ALTER COLUMN PERSON_ID Integer PRIMARY KEY AUTONUMBER
);
ALTER TABLE PERSON ALTER COLUMN PERSON_ID Integer PRIMARY KEY AUTOINCREMENT
);
每次我遇到相同的问题“语法错误”,它会突出显示SQL中的最后一个单词。
答案 0 :(得分:12)
对于Access中的数据定义(DDL)查询,您可以使用COUNTER
来定义自动编号字段。您试图在同一字段上同时使用Integer
和counter
,但这不起作用。
我刚试过这个,它在Access 2010中对我有用:
ALTER TABLE PERSON ALTER COLUMN PERSON_ID COUNTER PRIMARY KEY
请注意,为了使此声明有效
如果表格中已有行,则Access不允许您将Numeric (Long Integer)
字段转换为AutoNumber
。在这种情况下,您需要使用AutoNumber主键创建一个新表,然后将旧表中的行插入到新表中。
例如,对于名为[PERSON]且列为
的现有表 PERSON_ID INTEGER
PERSON_NAME TEXT(50)
您需要创建一个新表
CREATE TABLE PERSON_NEW (PERSON_ID COUNTER PRIMARY KEY, PERSON_NAME TEXT(50))
然后将记录复制到
INSERT INTO PERSON_NEW
SELECT * FROM PERSON