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,

Нет, ты не можешь предотвратить это. Вы всегда можете добавить квадратные скобки вокруг имени столбца, чтобы ничего не мешало.

Другие вопросы по тегам