2017-02-09 56 views
0

如果我通過TADOCommand.execute派遣這條SQL語句:如何在MS Access中創建名爲SECTION的數據庫表字段?

CREATE TABLE Spice (MODEL TEXT NOT NULL, PART TEXT NOT NULL PRIMARY KEY, SECTION TEXT NOT NULL, FOOTPRINT TEXT NOT NULL, NODELIST TEXT NOT NULL); 

它說:

Syntax error in field definition 

但是,如果我重新命名節SECTION2它的工作原理。我試圖引用它「SECTION」和「SECTION」,但它出現在名稱中。我應該以某種方式定義引號或轉義字符嗎? 我使用MS Access,我可以創建一個名爲SECTION的字段!

+2

您是否嘗試過'[SECTION]'? – kobik

+0

@kobik謝謝kobik。它工作正常。如果您創建答案,我會接受它。 –

回答

3

以下爲我工作得很好:

AdoCommand1.CommandText := 
    'CREATE TABLE Spice (MODEL TEXT NOT NULL, PART TEXT NOT NULL PRIMARY KEY, [SECTION] TEXT NOT NULL, FOOTPRINT TEXT NOT NULL, NODELIST TEXT NOT NULL);'; 
    AdoCommand1.Execute; 

注意的方括號部分,它避免了在大多數情況下,SQL關鍵字和對象名之間的衝突。

+1

downvoter會詳細說明嗎? – MartynA

-2

科是SQL中保留字,所以你不應該用它來命名的對象。有關單詞的完整列表,請參閱下面的鏈接。

https://msdn.microsoft.com/en-us/library/ms189822.aspx

+0

但在這種情況下,MS Access如何創建一個名爲SECTION的字段? –

+0

你可以看看MS ACCESS的這個解釋。如果您爲字段名稱使用保留字,Access只會警告您可能會遇到問題。您的工具可能不知道如何處理警告,或者這是其中一個問題。 https://support.office.com/zh-cn/article/Access-2007-reserved-words-and-symbols-e33eb3a9-8baa-4335-9f57-da237c63eabe – kubasnack