Sql Server 2005 заключает в квадратные скобки имя столбца
Недавно я переместил базу данных с Sql Server 2000 на Sql Server 2005. В конструкторе таблиц он настаивает на заключении в квадратные скобки столбца с именем "Содержимое". Я не вижу "Содержимое" в списке зарезервированных слов для Sql Server, поэтому Я не понимаю, почему он это делает. Есть ли способ, которым я могу предотвратить это?
3 ответа
Проблема в том, что поле имеет то же имя, что и таблица. Sql Server 2000, похоже, не заботился об этой потенциальной неоднозначности, но Sql Server 2005 заботится. Когда я добавляю поле с именем Content в таблицу, которая не называется Content, квадратные скобки не отображаются.
Pamela
CONTENT - это ключевое слово при определении столбца XML со схемой.
Смотрите здесь.
Редактировать: ссылка на MSDN не работает (в соответствии с комментарием Champ), так что вот соответствующая выдержка:
Создать типизированный столбец XML так же просто, как добавить имя схемы в скобках, как вы видите здесь:
CREATE TABLE Foo(FooID INT, someXml XML(CONTENT FooSchema))
Это утверждение указывает на то, что
someXml
столбец должен соответствовать коллекции XML-схем с именемFooSchema
, Вы можете указать, что XML должен быть документом или что он может содержать фрагмент, включив соответствующее ключевое слово,DOCUMENT
или жеCONTENT
соответственно. Если опущено, по умолчаниюCONTENT
,
Нет, ты не можешь предотвратить это. Вы всегда можете добавить квадратные скобки вокруг имени столбца, чтобы ничего не мешало.