sql server:括号在列名周围意味着什么?

时间:2010-08-23 20:11:10

标签: sql-server

我在sql server 2008中添加了一个字段,它将列名放在括号中,如[column2],但其他列名没有括号。括号是什么意思?

该列为[macro-writer]

我应该删除减号并用下划线替换吗?

5 个答案:

答案 0 :(得分:20)

括号是一种引用形式。只有列名称包含空格或标点符号或与保留字冲突时才有必要,但是许多向导只会添加所有字段名称的括号,以避免判断它们是否必要的逻辑。

答案 1 :(得分:18)

方括号中的列通常是关键字或包含特殊字符或空格。

您在括号中附上了哪些特定的列名?

答案 2 :(得分:4)

括号允许您使用不允许的字符和名称,如空格,保留字和以数字开头的名称

无效我的专栏,1列col%umn,表

有效 [我的专栏],[1column],[col%umn],[table]

当然,现在你可以变得非常有创意: - )

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

insert [table] values ('table')

select [table] from [table]

答案 3 :(得分:4)

通过答案查看相关问题:

我建议在标识符名称中使用下划线而不是破折号。

答案 4 :(得分:2)

Brackets允许您在SQL Server中分隔名称。这允许您执行诸如使用关键字[count]或包含空格[my column name]之类的操作。

编辑:对于您的后续问题,如果这是一个新列并且没有破坏现有代码的风险,那么我至少建议用下划线替换连字符。我们自己的内部命名标准是使用PascalCase(例如,MacroWriter)而不是下划线。