Pau*_*ulj 152 sql-server syntax
我注意到Visual Studio 2008在sql中的列名称周围放置了方括号.括号是否有任何优势?当我手工编写T-SQL代码时,我从不打扰他们.
示例:Visual Studio:SELECT [column1],[column2]等...
我自己的方式:SELECT column1,column2等...
Mic*_*ren 171
如果在列名称或标识符中使用关键字或特殊字符,则必须使用括号.您可以命名一个列[First Name](带空格) - 但是每次引用该列时都需要使用括号.
新的工具将它们添加到任何地方,以防万一或一致.
Blo*_*ard 55
如果您的列与SQL关键字具有相同的名称,或者在其中包含空格,则它们非常方便.
例:
create table test ( id int, user varchar(20) )
Run Code Online (Sandbox Code Playgroud)
不好了!关键字"user"附近的语法不正确.但是这个:
create table test ( id int, [user] varchar(20) )
Run Code Online (Sandbox Code Playgroud)
工作良好.
Gat*_*ler 12
如果您(出于某种原因)使用具有某些字符的列名称,它们将非常有用.
Select First Name From People
Run Code Online (Sandbox Code Playgroud)
不起作用,但在列名称周围放置方括号将起作用
Select [First Name] From People
Run Code Online (Sandbox Code Playgroud)
简而言之,它是一种明确声明对象名称的方式; 列,表,数据库,用户或服务器.
不管遵循避免使用保留字的命名约定,Microsoft 都会添加新的保留字。使用括号可以让您的代码升级到新的 SQL Server 版本,而无需首先从您的客户端代码中编辑 Microsoft 新的保留字。这种编辑可能是一个重大问题。它可能会导致您的项目过早退休......
当您想在脚本中全部替换时,方括号也很有用。如果您的批次包含一个名为@String 的变量和一个名为 [String] 的列,您可以将该列重命名为 [NewString],而无需将 @String 重命名为 @NewString。
在 1990 年代 SQL 的黑暗时代,这是一个很好的做法,因为 SQL 设计者试图将字典中的每个单词添加为关键字,以用于无休止的新功能雪崩,他们将其称为 SQL3 草案。
所以它保持了向前兼容性。
而且我发现它还有另一个很好的副作用,当您在代码审查和重构中使用 grep 时,它有很大帮助。