Неправильный синтаксис рядом с «Регистром». Ожидание ID, QUOTED_ID или ошибки». » в SQL Server

#sql-server #database #backend

Вопрос:

У меня в базе данных несколько таблиц. Все мои таблицы отображают выходные данные с использованием запроса select вместо только 1 таблицы «случай». в нем также есть данные и столбцы, но когда я использую его в своем запросе, он показывает синтаксическую ошибку. Я также прикрепил картинку, на которой есть список таблиц и простой запрос. Этот код разработан не мной, поэтому я не уверен, почему он показывает ошибку. Есть ли какие-либо ограничения, которые мы можем установить, чтобы они не могли использоваться в запросах?

Список o

Комментарии:

1. Обратите внимание, что SSMS-это цветовое кодирование заявления для вас — это действительно важная подсказка.

Ответ №1:

CASE является зарезервированным ключевым словом в SQL Server. Поэтому вы должны избегать его в двойных скобках:

 SELECT * FROM dbo.[Case];  

Но лучшая практика именования диктует, что мы должны избегать именования объектов базы данных с использованием зарезервированных ключевых слов. Так что не называйте свои столы CASE .

Комментарии:

1. Совершенно идеальный ответ. Решил мою проблему. Спасибо, Приятель!

Ответ №2:

Зарезервированные слова не рекомендуется использовать в качестве имен базы данных, таблицы, столбца, переменной или других объектов. Если вы хотите использовать зарезервированное слово, используемое в качестве имени объекта в стандартном синтаксисе ANSI, оно должно быть заключено в двойные кавычки ИЛИ » []», чтобы Реляционный механизм (в зависимости от того, что это такое) мог использовать это слово как объект, а не как ключевое слово в данном контексте. Вот пример кода.

 SELECT * FROM dbo."Case"  

Или

 SELECT * FROM dbo.[Case]  

Комментарии:

1. Совершенно идеальный ответ. Решил мою проблему. Спасибо, Приятель!