2011-10-27 256 views
2

我有一個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

回答

8

是 - 用方括號括起來的列名:

SELECT [ES&D] FROM myDB 

這應該工作 - 我希望!同樣適用於例如包含空格的表名稱或列名稱([Order Details])或SQL關鍵字的對象名稱,如[Order]

+3

謝謝!它工作完美。這就解釋了爲什麼Management Studio在創建查詢時爲您插入括號。 – Zach