Microsoft Access не любит имя поля таблицы в запросе SQL - PullRequest
1 голос
/ 11 января 2012

У меня есть следующий запрос SQL, который я пытаюсь выполнить внутри Microsoft Access 2010, и я получаю сообщение об ошибке (синтаксическая ошибка в операторе INSERT INTO), затем оно выделяет поле «Уровень», если я переименую поле в «Уровень1».работает.Проблема в том, что я не могу переименовать поле, потому что у меня есть несколько SQL-запросов в PHP, которые я полагаюсь на имя поля «Уровень». Любые идеи о том, почему это вызовет ошибку.

Причина, по которой я работаюзапрос состоит в том, чтобы скопировать данные из внешней базы данных ODBC sqlite, используя связанные таблицы.У меня есть несколько других запросов INSERT INTO, работающих таким образом.Если есть другой способ, пожалуйста, дайте мне знать.У меня есть запрос в некотором коде VB, который я использую DoCmd.RunSQL

INSERT INTO MinorStats1 ( PlayerID,YearNumber,TeamID,Level,B_PA,B_AB,B_Hits,B_Doubles,B_Triples,B_HR,B_RBI,B_BB,B_K,B_TB,B_AVG,B_SLG,B_OPS,B_OBP,B_FPCT,B_SB,B_CS,P_Wins,P_Losses,P_Saves,P_GS,P_OutsPitched,P_BF,P_Hits,P_HR,P_BB,P_K,P_ER,P_ERA)SELECT PlayerID,YearNumber,TeamID,Level,B_PA,B_AB,B_Hits,B_Doubles,B_Triples,B_HR,B_RBI,B_BB,B_K,B_TB,B_AVG,B_SLG,B_OPS,B_OBP,B_FPCT,B_SB,B_CS,P_Wins,P_Losses,P_Saves,P_GS,P_OutsPitched,P_BF,P_Hits,P_HR,P_BB,P_K,P_ER,P_ERA FROM MinorStats

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Заключите level в квадратные скобки следующим образом:

INSERT INTO MinorStats1 ( PlayerID,YearNumber,TeamID,[Level],B_PA,B_AB,B_Hits,B_Doubles,B_Triples,B_HR,B_RBI,B_BB,B_K,B_TB,B_AVG,B_SLG,B_OPS,B_OBP,B_FPCT,B_SB,B_CS,P_Wins,P_Losses,P_Saves,P_GS,P_OutsPitched,P_BF,P_Hits,P_HR,P_BB,P_K,P_ER,P_ERA)SELECT PlayerID,YearNumber,TeamID,[Level],B_PA,B_AB,B_Hits,B_Doubles,B_Triples,B_HR,B_RBI,B_BB,B_K,B_TB,B_AVG,B_SLG,B_OPS,B_OBP,B_FPCT,B_SB,B_CS,P_Wins,P_Losses,P_Saves,P_GS,P_OutsPitched,P_BF,P_Hits,P_HR,P_BB,P_K,P_ER,P_ERA FROM MinorStats

Это необходимо сделать, поскольку level является зарезервированным словом в Access.Полный список зарезервированных слов см. http://support.microsoft.com/kb/286335.

2 голосов
/ 11 января 2012

Вам просто нужно заключить [Уровень] (очевидно, это зарезервированное слово) в скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...