2010-07-28 4 views
2

Я пытаюсь создать этот стол, и я хочу отвести глаза. Что с этим не так? Я получаю сообщение об ошибке: «Неправильный синтаксис около ПЛАНА»Что не так с этим оператором 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 является зарезервированным ключевым словом.

Измените имя или используйте соответствующий escape-код для вашего типа сервера. Для MSSQL я думаю, что вы бы использовали [Plan], но вам придется делать это каждый раз, когда вы пишете запрос/процедуру/etc.

+0

Хахаха, что на 100% НЕ ОЖИДАЕТСЯ. Благодаря! –

1

План, вероятно, ключевое слово SQL (например, «ПЛАН EXPLAIN»).

Либо выйдите из названия столбца или измените его.

1

План - это зарезервированное слово. Если вы действительно хотите использовать его, и я советую ему, вам нужно будет заключить его в escape-символы.

4

Две проблемы:

  1. План SQL Server зарезервированное слово.
  2. Имя файла ProyectoFinal используется дважды.
+0

Хороший пикап, там @Bobs. –

1

ПЛАН - это зарезервированное ключевое слово. В зависимости от SQL двигателя вы используете, вы должны избежать этого имени столбца, используя либо цитату или скобки, то есть:

"Plan" bit 

Или

[Plan] bit 

А также делать это в любых запросах, а именно:

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

Или:

INSERT INTO Instrumentos(..., "Plan", ...) VALUES (...) 
Смежные вопросы