tags:

views:

74

answers:

6

I'm trying to create this table and I want to gauge my eyes out. What is wrong with it? I get an error: "Incorrect syntax near PLAN"

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  A: 

PLAN is a reserved keyword.

Change the name or use the appropriate escape for your server type. For MSSQL, I think you'd use [Plan], but you'll have to do that any time you write a query/procedure/etc.

Jay
Hahaha, that was 100% NOT EXPECTED. Thanks!
Sergio Tapia
+1  A: 

Plan is probably a SQL keyword (e.g, "EXPLAIN PLAN").

Either escape the column name or change it.

duffymo
+1  A: 

Plan is a SQL reserved word.

Paddyslacker
+1  A: 

Plan is a reserved word. If you really want to use it, and I advise against it, you would need to enclose it in escape characters.

Matt
+4  A: 

Two problems:

  1. Plan is SQL Server reserved word.
  2. ProyectoFinal column name is used twice.
bobs
Good pickup, there @Bobs.
Pure.Krome
+1  A: 

PLAN is a reserved keyword. Depending on which SQL engine you are using, you will have to escape that column name using either quotations or brackets, ie:

"Plan" bit

Or

[Plan] bit

And also do so in any queries, ie:

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

Or:

INSERT INTO Instrumentos(..., "Plan", ...) VALUES (...)
Remy Lebeau - TeamB