2010-07-28 6 views
2

이 테이블을 만들려고하고 있는데 눈을 짚고 싶습니다. 그게 뭐가 잘못 되었 니? "PLAN 근처 구문이 잘못되었습니다."이 SQL 문에 어떤 문제가 있습니까?

create table Instrumentos(
ID int primary key, 
IDSeguimiento int foreign key references Seguimiento(ID), 
GuiaDocente bit, 
GuiaDocenteObservacion varchar(200), 
GuiaAlumno bit, 
GuaiAlumnoObservacion varchar(200), 
Plan bit, 
PlanObservacion varchar(200), 
RegistroNotas bit, 
RegistroNotasObservacion varchar(200), 
PlanificacionClases bit, 
PlanificacionClasesObservacion varchar(200), 
Limat bit, 
LimatObservacion varchar(200), 
ProyectoFinal bit, 
ProyectoFinal varchar(200), 
Practicos bit, 
PracticosObservacion varchar(200), 
Portfolio bit, 
PortfolioObservacion varchar(200) 
) 

답변

7

PLAN은 예약어입니다.

서버 유형에 대해 이름을 변경하거나 적절한 이스케이프를 사용하십시오. MSSQL의 경우 [Plan]을 사용하는 것이 좋겠지 만 쿼리/프로 시저/등을 작성할 때는 언제든지해야합니다.

+0

하하, 그건 100 % 예상치 못한 것입니다. 감사! –

1

계획은 아마도 SQL 키워드 (예 : "EXPLAIN PLAN") 일 수 있습니다.

열 이름을 이스케이프하거나 변경하십시오.

1

계획은 예약어입니다. 당신이 정말로 그것을 사용하기를 원한다면 나는 그것을 권고하고, 당신은 이스케이프 문자로 그것을 묶어야 할 것이다.

4

두 가지 문제 :

  1. 계획은 SQL 서버 예약 된 단어입니다.
  2. ProyectoFinal 열 이름이 두 번 사용됩니다.
+0

좋은 픽업, 거기 @ Bob. –

1

PLAN은 예약어입니다. 이는 SQL 사용하는 엔진에 따라, 당신도 인용이나 괄호, 즉 사용하여 해당 열 이름을 탈출해야합니다 :

"Plan" bit 

또는

[Plan] bit 

을 또한 어떤 쿼리, 즉 그렇게 할 :

INSERT INTO Instrumentos(..., [Plan], ...) VALUES (...) 

또는 :

INSERT INTO Instrumentos(..., "Plan", ...) VALUES (...) 
관련 문제