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

Cic*_*ami 2 database sql-server conventions square-bracket

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

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

谢谢

Dav*_*vid 7

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

  1. 否则,包含空格的对象名称将无法作为查询的一部分进行解析,除非它们包含在括号中.
  2. 保留字的对象名称可能无法解析(或者更糟糕的是,正确解析并执行意外操作).

(我想也可能会有一个非常轻微的性能改进,因为引擎不需要尝试识别该项目的含义,它已被明确告知它是一个对象.它仍然需要验证,当然,但它可能是内部工作的一个小帮助.)

  • 这样做也是一种良好的做法,因为你提到的要点永远不会有任何问题,而且你的意图也是明确的. (2认同)