使用SQL Server中的列名检索列值

时间:2017-08-05 05:55:18

标签: sql sql-server tsql

我正在使用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

我的输出没有任何价值。

当我调试它时,变量正在获得我提供的值。

请帮忙解决此问题。

提前致谢。

1 个答案:

答案 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