插入变量和变量名称

时间:2016-06-24 10:36:16

标签: sql sql-server tsql sql-server-2014

我正在尝试做以下工作:

declare @Variable varchar(max)
set @Variabele = 'NameOfColumn'

INSERT into EmptyTable (ID, Name, Number )
select ID, @Variable, ????
from FullTable

我在@Variable中添加一个列的名称,并希望放入EmptyTable:ID,列的名称,该列中的值

最后一部分不适用于我所尝试的内容,我不断获取列的名称,而不是该行中该行的值。

有人有任何想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用动态sql:

declare @Variable varchar(max)
set @Variable = 'NameOfColumn'

declare @stmt nvarchar(max)

select @stmt = '
    INSERT into EmptyTable (ID, Name, Number )
    select ID, ''' + @Variable + '''' + ', ' + @Variable + '
    from FullTable'

exec sp_executesql 
    @stmt = @stmt

答案 1 :(得分:1)

如果列名存储在变量中,则很容易从列获取值。 我希望,下面的代码对你有所帮助。

Declare @Variable varchar(max)
set @Variable = 'Name'

exec ( 'INSERT into EmptyTable (ID, Name, Number )
        select ID,' + @Variable + ', 0 from FullTable')