SQL Server 2012存储过程:具有数字命名列的Where子句

agg*_*icd 0 sql sql-server stored-procedures sql-server-2012

我有一个表,其中一些列名为number

Table1 (id, 2014, 2015, 2016)
Run Code Online (Sandbox Code Playgroud)

当我尝试访问where存储过程中的子句中的这些列时,我收到错误

'.2014'附近的语法不正确.

这是存储过程的代码:

select @SiteNumOfItems = COUNT(*)    
from form.ItemStore I
where I.id = @id and I.2014 = 'Item1'
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

小智 7

尝试添加 []

例如 :

select @SiteNumOfItems=COUNT(*) from form.ItemStore I
    where I.id = @id and I.[2014] = 'Item1'
Run Code Online (Sandbox Code Playgroud)