繁体   English   中英

关键字“ FOR”附近的语法不正确

[英]Incorrect syntax near the keyword 'FOR'

我写了下面提到的查询...

    DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Name)  
                    from dbo.[WorkflowInstanceParameter] 
            FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')


Go 
set @query = 'SELECT ' + @cols + ' 
            from 
            (
                select wi.Id,wip.Name, wip.stringValue
                from FROM [ESP2_DEV1].[dbo].[WorkflowInstanceParameter] wip,
 [WorkflowParameterGroupInstance] wpgi, [ESP2_DEV1].[dbo].[WorkflowInstance] wi,
 dbo.WorkflowDefinition wd
 where wip.[WorkflowParameterGroupInstanceId] = wpgi.id
 and wpgi.[WorkflowInstanceId] =wi.id and
  wi.workflowDefinitionId=wd.id
            ) x
            pivot 
            (
                max(stringValue)
                for Name in (' + @cols + ')
            ) p '

execute(@query)

但是失败,并显示错误“关键字'FOR'附近的语法不正确”

谁能帮我这个忙吗????

这并不是这篇文章的真正答案,但是,如果您在Google上搜索此错误,则它是热门歌曲之一。

我遇到了这个问题,因为我试图用@命名游标

declare @someName cursor for 

这行不通。

您需要做:

declare someName cursor for 

代替。

我不清楚是否总是这样,因为我在网上看到了很多使用@的示例,还有很多没有使用的令人困惑的示例。 我是sqlserver的新手,所以不确定在这里是否发生了一些细微的事情。 但是,这绝对可以解决我的错误。 关于这一点,在线上似乎没有太多文献记载,但是其他问题对此进行了文献记载,但由于某种原因在Google上很难找到它!

有趣的事情强加给名字! 我将一个Oracle模式转换为sqlserver,不得不在各处添加@到变量中,但显然不是这些变量! 我想玩光标的家伙错过了那个会议或什么!

关键字FROM是在set @query子句中重复的:

select wi.Id,wip.Name, wip.stringValue
            from FROM [ESP2_DEV1].[dbo].[WorkflowInstanceParameter] wip

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM