[英]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.