#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 вставляет скобки для вас при создании запросов.