Sql server: что означают скобки вокруг имени столбца?

Я добавил поле в sql server 2008 и поставил имя столбца в скобки как [column2], но другие имена столбцов не имеют скобок. что означают скобки?

столбец [macro-writer]

должен ли я удалить знак минус и заменить на подчеркивание?

Ответы

Ответ 1

Столбцы, заключенные в квадратные скобки, обычно являются ключевыми словами или содержат специальные символы или пробелы.

Какое конкретное имя столбца вы заключили в скобки?

Ответ 2

Скобки - это форма цитирования. Это необходимо только в том случае, если имя столбца содержит пробелы или знаки препинания или конфликтует с зарезервированным словом, но многие мастера просто добавят скобки для всех имен полей, чтобы избежать логики для принятия решения о том, необходимы ли они.

Ответ 3

Кронштейны позволяют использовать символы и имена, которые не допускаются, как пробелы, зарезервированные слова и имена, начинающиеся с цифр

недействительный мой столбец, 1column col% umn, table

действительный [мой столбец], [1column], [col% umn], [table]

Конечно, теперь вы можете стать действительно творческими: -)

create table [table]([table] varchar(20))

insert [table] values ('table')

select [table] from [table]

Ответ 5

Скобки позволяют разграничить имена в SQL Server. Это позволяет делать такие вещи, как использование ключевых слов [count] или включать пробелы [имя моего столбца].

EDIT. Для вашего последующего вопроса, если это новый столбец, и нет риска взлома существующего кода, я бы хотя бы рекомендовал заменить дефис под знаком подчеркивания. Наши собственные внутренние стандарты именования - использование PascalCase (например, MacroWriter), а не подчеркивание.