我注意到Visual Studio 2008在sql中的列名周围放置了方括号。括号有什么好处吗?当我手代码T-SQL,我从来没有打扰他们。

例子:

Visual Studio:

SELECT [column1], [column2] etc...

我自己的方式:

SELECT column1, column2 etc...

当前回答

列名可能包含字符和保留字,这会使查询执行引擎感到困惑,因此在列名周围放置括号可以防止这种情况发生。我想,这比检查问题然后处理问题要容易得多。

其他回答

我相信这是为了保持一致性。只有在列名中有空格或特殊字符时才需要它们,但在IDE生成SQL时始终包含它们会更干净。

当列名是保留字时,可以使用方括号。

如果以编程方式从无法控制的列名集合生成SQL语句,则可以通过始终使用括号来避免问题。

例如,如果(出于某种原因)使用带有特定字符的列名,它们就很有用。

Select First Name From People

不能工作,但是在列名周围加上方括号可以工作吗

Select [First Name] From People

简而言之,这是一种显式声明对象名称的方式;列、表、数据库、用户或服务器。

如果在列名或标识符中使用关键字或特殊字符,则需要括号。你可以将一个列命名为[First name](带一个空格)——但是每次你引用这个列时都需要使用括号。

新的工具将它们添加到任何地方,只是以防万一或为了一致性。

列名可能包含字符和保留字,这会使查询执行引擎感到困惑,因此在列名周围放置括号可以防止这种情况发生。我想,这比检查问题然后处理问题要容易得多。