2012-05-10 57 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') 
相關問題