SQL 'Неверный синтаксис рядом с ключевым словом' в недавно добавленном столбце таблицы (изменить: имя столбца является зарезервированным словом) - PullRequest
0 голосов
/ 15 октября 2018

Моя таблица содержит следующие столбцы:

  • id (int)
  • errorDate (datetime)
  • Data nvarchar (100)
  • Функция (недавно добавленный столбец, nvarchar (100))
  • fileName (аналогично вновь добавленной функции, однако проблем с этим нет)

Я использую Microsoft SQL Server 2008R2 (SP1) - 10.50.2876.0 (X64) 30 мая 2013 г. 10:18:43 Авторское право (c) Microsoft Corporation Enterprise Edition (64-разрядная версия) в Windows NT 6.1 (сборка 7601: пакет обновления 1) (гипервизор)

и Microsoft SQL Server Management Studio 14.0.17277.0

Мой запрос выглядит так:

select * from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' 
   and ErrorDate > GETDATE()-90 
   and Function ='ProcessTblFromCSV'

Запрос возвращает ошибку:

Сообщение 156, Уровень 15, Состояние 1, Строка 9 Неверный синтаксис рядом с ключевым словом «Функция».

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

function - это ключевое слово в T-SQL.

Попробуйте заключить его в квадратные скобки:

select * from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' 
   and ErrorDate > GETDATE()-90 
   and [Function] ='ProcessTblFromCSV'
0 голосов
/ 15 октября 2018

Вам нужны квадратные скобки [] вокруг function столбец:

select * 
from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' and 
      ErrorDate > GETDATE()-90  and 
      [Function] ='ProcessTblFromCSV';

Однако не рекомендуется использовать имя function, это зарезервированное ключевое слово.Во-вторых, я бы использовал dateadd(), здесь есть блог вместо вычитания (-90):

Итак, вы можете сделать вместо:

select * 
from dbo.InstallationErrorLog  
where data = 'Input string was not in a correct format.' and 
      ErrorDate > DATEADD(DAY, -90,  GETDATE()) and 
      [Function] ='ProcessTblFromCSV';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...