2014-04-09 61 views
0

试图执行下面的SQL却给人无效列“开放”等,为所有列SQL INSERT INTO给无效列错误

insert into t ("Date","assignee","pkey","open","In Progress","Awaiting Release","Referred") 
select date, assignee,pkey,open,[In Progress],[Awaiting Release],[referred] from (
SELECT Cast(Getdate() AS DATE) AS Date, 
     pname     AS Status, 
     assignee, 
     pkey 
FROM s JI, 
     k JS 
WHERE JI.issuestatus = JS.id 
     AND JI.issuetype IN (21, 4) 
     AND JS.pname IN('Open', 'In Progress', 'Awaiting Release', 'Referred'))as source 
    PIVOT 
    (count([Status]) 
    FOR [status] in ([Open],[In Progress],[Awaiting Release],[Referred])) as pvt 
+5

尝试将其转义为[Open] –

+0

谢谢我添加了转义字符,但是这个SQL语句被添加到SQL文件的末尾,该文件有很多其他语句。所有上面的其他所有的东西都会被攻击,但是这并非如此 – Alfaromeo

回答

0

OPEN是一个命令,所以你需要在它周围放上方括号以突出显示它是一个字段

insert into t ("Date","assignee","pkey","open","In Progress","Awaiting Release","Referred") 
select date, assignee,pkey,[open],[In Progress],[Awaiting Release],[referred] from (
SELECT Cast(Getdate() AS DATE) AS Date, 
     pname     AS Status, 
     assignee, 
     pkey 
FROM s JI, 
     k JS 
WHERE JI.issuestatus = JS.id 
     AND JI.issuetype IN (21, 4) 
     AND JS.pname IN('Open', 'In Progress', 'Awaiting Release', 'Referred'))as source 
    PIVOT 
    (count([Status]) 
    FOR [status] in ([Open],[In Progress],[Awaiting Release],[Referred])) as pvt 
0

不知道,但更新的第一条语句如下工作

insert into t ([Date],[assignee],[pkey],[open],[In Progress],[Awaiting Release],[Referred])