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

例子:

Visual Studio:

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

我自己的方式:

SELECT column1, column2 etc...

当前回答

如果列的名称与SQL关键字相同,或者列中有空格,则使用这种方法非常方便。

例子:

create table test ( id int, user varchar(20) )

哦,不!关键字“user”附近的语法错误。 但这:

create table test ( id int, [user] varchar(20) )

工作很好。

其他回答

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

除了 一些Sharepoint数据库的名称中包含连字符。在SQL语句中使用方括号可以正确解析名称。

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

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

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

如果列的名称与SQL关键字相同,或者列中有空格,则使用这种方法非常方便。

例子:

create table test ( id int, user varchar(20) )

哦,不!关键字“user”附近的语法错误。 但这:

create table test ( id int, [user] varchar(20) )

工作很好。