1

我为 MS Access 编写了 SQL 代码。

除 12345 之外的所有值都是文本 (VARCHAR)。

INSERT INTO TABLE
VALUES (12345, 'Mary', 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689')

当我执行它时,它要求所有文本字段的参数。

我该如何克服这个问题?

谢谢

4

4 回答 4

3

错误信息到底是什么?

INSERT INTO TABLE
VALUES (12345, 'Mary', 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689')

仅当您提供的值的数量等于表中的字段数时才能成功执行,您可以不指明字段名称。

但是,如果您的值数不等于表上的字段数,那么您必须指定要将值放入哪个特定字段名。

INSERT INTO table (field1,field2,field3,field4,field5,field6,field7,field8)
VALUES (12345, 'Mary', 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689')

如果您有 9 个字段并且您不想包含第 9 个字段,则将其设置为 NULL,或者如果您的第 9 个字段可能是唯一编号,则将其设置为自动增量,您不必输入字段名称。

于 2012-05-10T09:14:25.137 回答
0

您需要在查询中指定列的名称:

INSERT INTO TABLE (col1, col2, clo3, .., col8)VALUES 
(12345, 'Mary', 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689')
于 2012-05-10T09:33:04.970 回答
0

由于您只插入 8 个值,因此您的插入语句需要进行小改动。你的表中有 9 个值。

假设您没有将值插入表的最后一列,那么语句应该是这样的

INSERT INTO TABLE
VALUES (12345, 'Mary', 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689',null)

如果它是第一列

INSERT INTO TABLE
VALUES (null,12345, 'Mary', 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689')

只需将 null 放在您未插入的第 n 个位置,例如它比 3 列

INSERT INTO TABLE
VALUES (12345, 'Mary', null, 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689')
于 2012-05-10T09:42:55.307 回答
0

查询中缺少字段名称。

Insert into <TableName> (Fieldsname)
Values (values)

http://msdn.microsoft.com/en-us/library/bb208861(v=office.12).aspx

于 2012-05-10T09:08:39.830 回答