使用存储过程的输入变量设置SELECT语句的字段选择

时间:2013-07-13 10:02:54

标签: sql sql-server stored-procedures

以下简单的存储过程无法返回结果集,即使将这个简单的SELECT语句与实际值隔离运行也可以正常工作。有什么想法吗?

ALTER PROCEDURE [dbo].[PageHeadingGetText]
    @PageType nvarchar(100)
AS

BEGIN
    SET NOCOUNT ON;

    SELECT @PageType FROM [dbo].[PageHeadingText] 
END

1 个答案:

答案 0 :(得分:4)

您没有直接询问,但在标题中您说“设置SELECT的字段选择”。 您必须使用动态SQL动态构建语句:

ALTER PROCEDURE [dbo].[PageHeadingGetText]
    @columns nvarchar(max)
AS

BEGIN
    SET NOCOUNT ON;

    DECLARE @sqlCommand NVARCHAR(MAX)

    SET @sqlCommand = 'SELECT ' + @columns + ' FROM [dbo].[PageHeadingText]' 

    EXECUTE sp_executesql @sqlCommand
END