仅从存储过程中的表中选择列名

时间:2014-09-18 04:26:45

标签: sql-server-2008-r2

我想从存储过程中仅提取列。我已经尝试过,但它不起作用。

这是我的代码:

create procedure [dbo].[sample]
    @mc as varchar(5)
as
begin
    select @mc  
    from Layout;
end

表格结构dbo.layout

layout_id = 1, mc1 = 5, mc2 = 6, mc3 = 8, m4 = 10 

例如:

select mcX from layout; 

通过存储过程。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要使用动态SQL指定要返回的列:

create procedure [dbo].[sample]

@mc as nvarchar(5)

as
begin
    declare @sql nvarchar(100) = N'select ' +  QUOTENAME(@mc) + N' from Layout'

    exec sp_executesql @sql
end