列查询包含&的SQL查询

Zac*_*ach 2 sql sql-server ssms sql-server-2008

我有一个SQL Server 2008数据库,其中一列名为ES&D.我想基于该列进行查询,如下所示:

SELECT ES&D FROM myDB
Run Code Online (Sandbox Code Playgroud)

或这个:

SELECT * FROM myDB WHERE ES&D=1
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误(我正在使用SQL Server Management Studio编写查询):

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

有没有办法逃避&列名称,以便SQL按字面意思对待它?

mar*_*c_s 8

是 - 将列名括在方括号中:

SELECT [ES&D] FROM myDB
Run Code Online (Sandbox Code Playgroud)

这应该工作 - 我希望!例如,在([Order Details])中包含空格的表名或列名,或者像SQL关键字的对象名,如[Order]

  • 谢谢!它工作得很好.这就解释了为什么Management Studio在创建查询时会为您插入括号. (3认同)