使用sp_executesql时语法不正确

时间:2013-09-11 07:01:42

标签: sql-server-2008-r2

我无法执行select过程返回的动态sql。 以下是我的代码示例:

DECLARE 
    @ID int
  , @Query nvarchar(max)
SET @ID = CONVERT(int, '[P:Field_ID]')
SET @Query = 
    (
        SELECT
            FF.[External_Source_Query]
        FROM WF_Form_Field FF
            LEFT JOIN WF_Field F ON
                FF.[Field_ID] = F.[ID]
        WHERE
            FF.[External_Source_Query] IS NOT NULL
        AND F.[ID] = @ID
    )

EXEC SP_EXECUTESQL(@Query)

我收到一条错误,说“@Query”附近的语法不正确。 有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

不要使用括号:

EXEC SP_EXECUTESQL @Query

如果我们正在做一个简单的EXEC

,你会使用括号
EXEC(@Query)

但是,我也没有看到这条线如何产生正确的结果:

SET @ID = CONVERT(int, '[P:Field_ID]')

因为我看不到将字符串[P:Field_ID]解释为整数的合理方法。