MS Access 2016执行CREATE TABLE语句时出现语法错误求助
排查MS Access 2016中CREATE TABLE语句的语法错误
我帮你排查下这个问题——MS Access的SQL语法和标准SQL确实有不少差异,你从W3School复制的标准SQL语句放到Access里跑不通,主要是数据类型不兼容,还有一些Access特有的语法要求:
核心问题分析
- 数据类型不匹配:Access SQL里没有
varchar这个类型,对应的文本类型是Text,长度格式是Text(255)而非varchar(255);另外标准SQL的int在Access里通常用Integer(对应32位整数范围),如果需要更大数值范围可以用Long Integer。 - 可选但建议的约束:如果
PersonID是表的主键,Access里需要显式声明约束,自增字段也有专属的关键字AutoIncrement(不是标准SQL的AUTO_INCREMENT)。
修正后的SQL语句
基础版本(仅创建字段)
CREATE TABLE Persons ( PersonID Integer, LastName Text(255), FirstName Text(255), Address Text(255), City Text(255) );
带主键和自增的版本(更符合实际表设计)
如果PersonID需要作为自增主键,用这个版本:
CREATE TABLE Persons ( PersonID AutoIncrement PRIMARY KEY, LastName Text(255), FirstName Text(255), Address Text(255), City Text(255) );
额外排查技巧
如果之后再遇到类似语法问题,可以试试Access的查询设计视图:先通过图形化界面创建表,然后切换到「SQL视图」查看Access自动生成的SQL语句,对比自己的写法就能快速找到差异点。
内容的提问来源于stack exchange,提问作者Nitesh Tyagi




