SQL-запрос, в котором имя столбца содержит

#sql #sql-server #sql-server-2008 #ssms

#sql #sql-сервер #sql-server-2008 #ssms

Вопрос:

У меня есть база данных SQL Server 2008 с именем столбца ESamp;D . Я хочу выполнить запрос на основе этого столбца следующим образом:

 SELECT ESamp;D FROM myDB
 

Или это:

 SELECT * FROM myDB WHERE ESamp;D=1
 

Но я получаю следующую ошибку (я использую SQL Server Management Studio для написания запросов):

Сообщение 207, уровень 16, состояние 1, строка 1
Недопустимое имя столбца ‘ES’.
Сообщение 207, уровень 16, состояние 1, строка 1
Недопустимое имя столбца ‘D’.

Есть ли какой-нибудь способ избежать amp; в имени столбца, чтобы SQL обрабатывал его буквально?

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

1. Чума на того, кто создал это имя столбца в первую очередь.

Ответ №1:

Да — заключите имя вашего столбца в квадратные скобки:

 SELECT [ESamp;D] FROM myDB
 

Это должно сработать — я надеюсь! То же самое относится, например, к именам таблиц или столбцов с пробелами в них ( [Order Details] ) или именам объектов, которые являются ключевыми словами SQL, например [Order] , таблицей

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

1. Спасибо! Это сработало отлично. Это объясняет, почему Management Studio вставляет скобки для вас при создании запросов.