在Access中使用自动编号 - INSERT语句

Sma*_*ery 6 sql ms-access ado insert autonumber

我无法运行一个INSERT声明,其中有一个自动编号作为PK字段.我有一个自动递增long作为主键,然后4个字段的类型double; 而Access(使用ADO)似乎需要insert语句的五个值.

INSERT INTO [MY_TABLE] VALUES (1.0, 2.0, 3.0, 4.0);
>> Error: Number of query values and destinations fields are not the same.

INSERT INTO [MY_TABLE] VALUE (1, 1.0, 2.0, 3.0, 4.0);
>> Success!!
Run Code Online (Sandbox Code Playgroud)

如何使用自动编号实际自动编号?

Fre*_*els 15

如果您不想为表中存在的所有列提供值,则必须指定要插入的列.(这是合乎逻辑的,否则应该如何访问或任何其他数据库知道您提供的值是哪些列)?

那么,你要做的就是:

INSERT INTO MyTable ( Column2, Column3, Column4) VALUES ( 1, 2, 3 )
Run Code Online (Sandbox Code Playgroud)

另外,请确保省略Primary Key列(自动编号字段).然后,Access将自己将其设置为下一个值.

然后,您可以通过执行a来检索新插入记录的主键值

SELECT @@identity FROM MyTable
Run Code Online (Sandbox Code Playgroud)

声明.