使用Variable查询始终返回Variable值

时间:2017-10-17 08:13:54

标签: sql sql-server variables

我创建了以下过程来最终获取值(而不是最后的列名)。但是,如果在上一个查询中仅使用声明的@ColumnName,我只会看到列名“XXX”,而不是该行的XXX值。

我有以下内容:

DECLARE @ColumnName AS VARCHAR(50)
SET @ColumnName = (select column_name    FROM INFORMATION_SCHEMA.COLUMNS where table_name = 'History' and  ORDINAL_POSITION = 2 )

SELECT   @ColumnName from kat.[dbo].[History] 

我想得到的是以下结果:

select XXX from kat.[dbo].[History] 

即使@ColumName的值为XXX,也不起作用。

在左边我得到了我的结果(总是列的名称,右边是所需的值)

1-XXX, The value from XXX
2-XXX, the next value from XXX
3-XXX, the next value from XXX

非常感谢,

1 个答案:

答案 0 :(得分:1)

您需要动态查询

EXEC('SELECT '+@ColumnName+' from kat.[dbo].[History] ')