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

例子:

Visual Studio:

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

我自己的方式:

SELECT column1, column2 etc...

当前回答

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

其他回答

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

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

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

它们对于识别SQL中的每个元素非常有用。

例如:

CREATE TABLE SchemaName.TableName (

这实际上会创建一个名为SchemaName的表。在默认的dbo模式下创建TableName,尽管目的可能是在SchemaName模式内创建表。

正确的方法如下:

CREATE TABLE [SchemaName].[TableName] (

现在它知道表名是什么,以及应该在哪个模式中创建它(正确地是在SchemaName模式中,而不是在默认的dbo模式中)

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

Select First Name From People

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

Select [First Name] From People

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

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