如何在MS Access中创建名为SECTION的数据库表字段?

如何在MS Access中创建名为SECTION的数据库表字段?

问题描述:

如果我通过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。它工作正常。如果您创建答案,我会接受它。 –

以下为我工作得很好:

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

科是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