表/列名称用方括号括起来,即使它们的名称由合法字符组成

时间:2010-05-22 18:53:40

标签: sql sql-server tsql

方括号允许您为包含不允许列名或别名的字符的列或别名使用名称。

a)我注意到很多时候表格和列名都包含在方括号内,即使它们的名字由完全合法的字符组成。那是为什么?

b)据我所知,包含对象名称的方括号实际上并不是该名称的一部分。因此,如果我们创建一个名为[A]的表:

CREATE TABLE [A] ( … )

我们以后可以不使用括号来引用它:

SELECT * FROM A

但是当我尝试从CONTAINSTABLE函数返回的表中引用列KEY时,为什么不一样?也就是说,如果我省略括号列名称的括号,我会收到错误:

SELECT ct.KEY   
FROM CONTAINSTABLE(fullText,*,'some_string') as ct

感谢名单

2 个答案:

答案 0 :(得分:1)

KEY是SQL中的保留字,因此需要括号将其用作列名。

我认为很多时候你看到多余的方括号可能是由工具生成的代码。 Management Studio在生成一些脚本时将它们放在一起。

答案 1 :(得分:1)

括号不仅适用于合法字符,还允许使用其他保留字来表示列名等。