2012-05-10 55 views
1

我为MS Access编写了SQL代码。为什么查询要求参数值?

除12345之外的所有值均为text(VARCHAR)。

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

,当我执行它,它所需要的参数对于所有的文本字段。

我该如何克服这个问题?

谢谢

+1

有多少个参数re,你确定你提供了所有参数的值。 – Maddy

+0

共有9个参数,但我只需要插入8个参数。 但是我的最后一个参数也不是NULL – user1355061

+0

您插入的语法会期望9个值(全部),而您仅传递8,因此导致错误 – Maddy

回答

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个领域,你不想包括第九字段然后将其设置为NULL,或者如果你的第九场大概是一个唯一的编号,然后将其设置为自动增量和你没有把字段名。

+1

+1同意,并且它们也必须按正确的顺序排列。不过,我认为总是包含字段(列)名是更安全的。 – Fionnuala

+0

以一种你知道价值观进入的方式更安全,但如果你确定字段的顺序,那么你应该没问题。 – maSTAShuFu

0

你需要在查询中指定的列的名称:如您插入只有8个值在INSERT语句所需

INSERT INTO TABLE (col1, col2, clo3, .., col8)VALUES 
(12345, 'Mary', 'Jones', '123 George St', 'Canberra', 'ACT', '1000', '0298754689') 
+2

不,你不知道。只要值的数量等于列的数量并且值的顺序正确,查询就可以工作。 – Fionnuala

0

小的变化。并且表中有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') 

只需将空的你没有插入的第n个位置,例如它是3列比

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