我想从存储过程中仅提取列。我已经尝试过,但它不起作用。
这是我的代码:
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;
通过存储过程。
提前致谢。
答案 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