SQL查询,列名包含&

问题描述:

我有一个SQL Server 2008数据库,列名为ES&D。我想基于这样该列进行查询:SQL查询,列名包含&

SELECT ES&D FROM myDB 

或者这样:

SELECT * FROM myDB WHERE ES&D=1 

但我得到以下错误(我使用SQL Server Management Studio中编写查询):

消息207,级别16,状态1,行1
无效的列名称'ES'。
消息207,级别16,状态1,行1
无效的列名称'D'。

有没有办法逃避在列名&,这样SQL把它的字面?

+4

对于创建该列名称的人来说,这是一个痘痘。 –

+0

@Joe Stefanelli不开玩笑 – Zach

是 - 用方括号括起来的列名:

SELECT [ES&D] FROM myDB 

这应该工作 - 我希望!同样适用于例如包含空格的表名称或列名称([Order Details])或SQL关键字的对象名称,如[Order]

+3

谢谢!它工作完美。这就解释了为什么Management Studio在创建查询时为您插入括号。 – Zach