sp_executesql必须声明变量

时间:2019-02-28 02:34:30

标签: sql sql-server

我有此SQL代码

""

我得到了错误:

  

必须声明标量变量sql @ColumnF

我不确定如何解决。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您需要这样称呼:

DECLARE @Query   NVARCHAR(MAX),
        @ColumnF VARCHAR(100),
        @ColumnLoop INT = 3;

SET @Query = N'
SELECT @ColumnF=[F'+CAST(@ColumnLoop AS VARCHAR(255))+'] 
FROM [Prestage].[SurveyBulkCrosstab]
WHERE ExcelRowNumber = 1';

EXEC sp_executesql @Query,
                   N'@ColumnLoop INT, @ColumnF VARCHAR(100) OUTPUT',
                   @ColumnLoop=@ColumnLoop, @ColumnF=@ColumnF OUTPUT;

也就是说,您需要将变量传递到sp_executesql中。