MS Access 和 ODBC 的 AUTOINCREMENT 列的语法

Syntax for AUTOINCREMENT column for MS Access and ODBC

在 C# 中将 ODBC JET 4.0 驱动程序与较旧(Access 2003 或更早版本)的 MS Access 数据库一起使用。以下作品:

CREATE TABLE [FunkyTable] (FunkyCol INTEGER);
CREATE TABLE [FunkyTable] (FunkyCol INTEGER PRIMARY KEY);

但以下所有操作均因错误而失败

ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error in CREATE TABLE statement

CREATE TABLE [FunkyTable] (FunkyCol INTEGER AUTOINCREMENT);
CREATE TABLE [FunkyTable] (FunkyCol INTEGER AUTOINCREMENT(1,1) PRIMARY KEY);
CREATE TABLE [FunkyTable] (FunkyCol INTEGER AUTO_INCREMENT);
CREATE TABLE [FunkyTable] (FunkyCol INTEGER AUTO_INCREMENT(1,1) PRIMARY KEY);
CREATE TABLE [FunkyTable] (FunkyCol INTEGER IDENTITY);
CREATE TABLE [FunkyTable] (FunkyCol INTEGER IDENTITY(1,1) PRIMARY KEY);

正确的语法是什么?

我想这就是您要找的:

CREATE TABLE [FunkyTable] (FunkyCol COUNTER);

在此 MS 文档的底部示例中找到详细信息:https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/create-table-statement-microsoft-access-sql

AUTOINCREMENT是基于Long Integer的字段类型,所以INTEGER AUTOINCREMENT相当于要求2个字段类型。但是,Access 只允许您为每个字段指定 1 种类型。

包括 PRIMARY KEY 这样该字段将作为正确的访问自动编号运行。 (没有 PRIMARY KEY,table 将接受重复的 FunkyCol 值。)

CREATE TABLE [FunkyTable] (FunkyCol AUTOINCREMENT PRIMARY KEY);