2017-02-09 5 views
0

내가 TADOCommand.execute하여 SQL 문을 파견하는 경우 :MS Access에서 SECTION이라는 DB 테이블 필드를 만들려면 어떻게해야합니까?

Syntax error in field definition 

을하지만 2 장에 제 이름을 바꾸면 작동 :

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); 

그것은 말한다. 나는 그것을 "SECTION"과 "SECTION"으로 인용하려했지만 그 이름으로 나타났습니다. 어떻게 든 따옴표 나 이스케이프 문자를 정의해야합니까? Whan MS Access를 사용하면 SECTION이라는 필드를 만들 수 있습니다!

+2

'[SECTION]'을 시도해 보셨습니까? – kobik

+0

@kobik 감사 kobik. 그것은 잘 작동합니다. 당신이 대답을 만들면 받아 들일 것입니다. –

답변

3

나를 위해 잘 작동합니다 : 대부분의 상황에서 SQL 키워드와 개체 이름 사이의 충돌을 방지 제, 주위

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; 

참고 대괄호.

+1

downvoter가 정교하게 신경 쓰겠습니까? – MartynA

-2

섹션은 SQL의 예약어이므로 개체의 이름을 지정하는 데 사용해서는 안됩니다. 전체 단어 목록을 보려면 아래 링크를 참조하십시오. 다음

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

+0

하지만이 경우 어떻게 MS Access에서 SECTION이라는 필드를 만들 수 있습니까? –

+0

당신은 MS ACCESS에 대한이 설명을 볼 수 있습니다. 필드 이름에 예약어를 사용하면 Access에서 문제가 발생할 수 있음을 경고합니다. 도구가 경고를 처리하는 방법을 알지 못하거나이 문제 중 하나 일 수 있습니다. httv://support.office.com/en-us/article/Access-2007-reserved-words-and-symbols-e33eb3a9-8baa-4335-9f57-da237c63eabe – kubasnack