如何使用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
);
Run Code Online (Sandbox Code Playgroud)
每次我得到相同的问题"语法错误",它突出显示SQL中的最后一个单词.
Gor*_*son 13
对于Access中的数据定义(DDL)查询,您可以使用它COUNTER来定义自动编号字段.你试图同时使用Integer,并counter在相同的领域,这是行不通的.
我刚试过这个,它在Access 2010中对我有用:
ALTER TABLE PERSON ALTER COLUMN PERSON_ID COUNTER PRIMARY KEY
Run Code Online (Sandbox Code Playgroud)
请注意,为了使此语句有效
如果表中已有行,则Access将不允许您将Numeric (Long Integer)字段转换为AutoNumber.在这种情况下,您需要使用AutoNumber主键创建一个新表,然后将旧表中的行插入到新表中.
例如,对于具有列的名为[PERSON]的现有表
PERSON_ID INTEGER
PERSON_NAME文字(50)
你需要创建一个新表
CREATE TABLE PERSON_NEW (PERSON_ID COUNTER PRIMARY KEY, PERSON_NAME TEXT(50))
Run Code Online (Sandbox Code Playgroud)
然后复制记录
INSERT INTO PERSON_NEW
SELECT * FROM PERSON
Run Code Online (Sandbox Code Playgroud)