我正在维护由另一个人在 SQL Server 中创建的数据库。在一个表中,我发现一列名称在方括号之间。该字段的名称是desc
,它在表中存储为[desc]
。其他字段不带方括号存储。这种选择背后有什么特殊原因/约定吗?
建立在数据库之上的应用程序是用 C# 或 VB.NET 开发的。
谢谢
我正在维护由另一个人在 SQL Server 中创建的数据库。在一个表中,我发现一列名称在方括号之间。该字段的名称是desc
,它在表中存储为[desc]
。其他字段不带方括号存储。这种选择背后有什么特殊原因/约定吗?
建立在数据库之上的应用程序是用 C# 或 VB.NET 开发的。
谢谢
括号(或其他数据库引擎中的其他标识符)只是告诉查询引擎该术语是数据库中对象的标识符的显式方式。常见原因包括:
(我想也有可能会有一个非常轻微的性能改进,因为引擎不需要尝试识别该项目的含义,它已被明确告知它是一个对象。它仍然需要验证这一点,当然,但这可能对内部工作有一点帮助。)
如果您的名称包含保留字(例如 SELECT)或空格,则需要用 [] 将名称括起来。
在您的示例中,您有 [desc],它是 DESCENDING 的缩写。
例如,如果您有一个关键字字段,例如 [Date] 或 [Select],或者在这种情况下为 [desc]