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把它的字面?
答
是 - 用方括号括起来的列名:
SELECT [ES&D] FROM myDB
这应该工作 - 我希望!同样适用于例如包含空格的表名称或列名称([Order Details]
)或SQL关键字的对象名称,如[Order]
表
+3
谢谢!它工作完美。这就解释了为什么Management Studio在创建查询时为您插入括号。 – Zach
对于创建该列名称的人来说,这是一个痘痘。 –
@Joe Stefanelli不开玩笑 – Zach