我正在使用SSMS 2014,我想在SQL Server中使用列名检索列值。用户可以从表中选择任何列并检索该列的值。
示例:
exec employee Name 'karl'
输出如下:
| Id | Name | ManagerId | ManagerName | Gender | Dept |
| 5 | Karl | 1 | Luke | M | 1 |
我正在创建解决此问题的程序,但我没有在输出中获得任何值。
Create proc sp_getEmpDetail
@colname varchar(50),
@colvalue varchar(50)
as
Select *
from employees1
where @colname = @colvalue
我的输出没有任何价值。
当我调试它时,变量正在获得我提供的值。
请帮忙解决此问题。
提前致谢。
答案 0 :(得分:3)
--for this you need to create a dynamic Query
Create proc sp_getEmpDetail
@colname varchar(50),
@colvalue varchar(50)
AS
DECLARE @Sql_String NVARCHAR(MAX)
SET @Sql_String='Select * from employees1 where '+@colname+' = '''+@colvalue+''''
PRINT @Sql_String
EXEC(@Sql_String)
END