有没有理由在方括号之间写一个数据库列?

时间:2011-09-27 13:45:55

标签: sql-server database conventions square-bracket

我正在维护由SQL Server中的其他人创建的数据库。在一个表中,我找到了一个名称在方括号之间的列。该字段的名称为desc,并以[desc]的形式存储在表中。其他字段存储时没有方括号。这个选择背后有什么特殊原因/惯例吗?

构建在数据库之上的应用程序是用C#或VB.NET开发的。

由于

3 个答案:

答案 0 :(得分:7)

括号(或其他数据库引擎中的其他标识符)只是告诉查询引擎该术语是数据库中对象的标识符的一种明确方式。常见原因包括:

  1. 包含空格的对象名称将无法作为查询的一部分进行解析,除非它们被括在括号中。
  2. 保留字的对象名称无法解析(或者更糟糕的是,正确解析并执行意外的事情)。
  3. (我想也可能会有一个非常轻微的性能提升,因为引擎不需要尝试识别该项目的含义,它已被明确告知它是一个对象。它仍然需要当然,验证这一点,但它可能是内部工作的一个小帮助。)

答案 1 :(得分:4)

如果您的名字包含保留字(例如SELECT)或空格,则需要用[]包围名称。

在您的示例中,您有[desc],它是DESCENDING的缩写。

答案 2 :(得分:3)

例如,如果您的字段是关键字,例如[日期]或[选择],或者在这种情况下[desc]