我有一个包含现有记录的现有数据库的副本.当我和桌上设计师一起玩时,注意到一些列名称周围有[].它们似乎都是任意类型(float,datetime,netext,nvarchar等),并且列属性中没有任何东西可以摆脱[].我试图重命名删除[]但是一旦我退出编辑就重新开始.
根据这篇文章,它是xml列的关键字列?但这些列都不是xml列.有人会向ms-sql新手解释这个目的吗?谢谢
Mar*_*ers 55
方括号[]
用于分隔标识符.如果列名是保留关键字或包含特殊字符(如空格或连字符),则必须执行此操作.
有些用户也喜欢使用方括号,即使它们不是必需的.
来自MSDN:
定界标识符
用双引号(")或括号([])括起来.符合标识符格式规则的标识符可以分隔,也可以不分隔.
Run Code Online (Sandbox Code Playgroud)SELECT * FROM [TableX] --Delimiter is optional. WHERE [KeyCol] = 124 --Delimiter is optional.
必须在Transact-SQL语句中分隔不符合所有标识符规则的标识符.
Run Code Online (Sandbox Code Playgroud)SELECT * FROM [My Table] --Identifier contains a space and uses a reserved keyword. WHERE [order] = 10 --Identifier is a reserved keyword.
方括号可放置在对象周围(例如视图,数据库,列等)
正如Mark所说,它们的主要目的是封装对象,以便特殊字符(如空格或句点)不会干扰您的语法.
默认情况下,许多应用程序使用括号表示法,以进一步降低语法错误或类似内容的风险.
不包含任何空格通常是一种好习惯
Database_Name < GOOD PRACTICE
Database Name < GENERALLY TRY TO AVOID
Run Code Online (Sandbox Code Playgroud)
在任何情况下,如果使用后者,您可以使用方括号,即
select * from [Database Name]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
44630 次 |
最近记录: |