我在sql server 2008中添加了一个字段,它将列名放在括号中,如[column2]
,但其他列名没有括号。括号是什么意思?
该列为[macro-writer]
我应该删除减号并用下划线替换吗?
答案 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)而不是下划线。