我正在尝试做以下工作:
declare @Variable varchar(max)
set @Variabele = 'NameOfColumn'
INSERT into EmptyTable (ID, Name, Number )
select ID, @Variable, ????
from FullTable
我在@Variable中添加一个列的名称,并希望放入EmptyTable:ID,列的名称,该列中的值
最后一部分不适用于我所尝试的内容,我不断获取列的名称,而不是该行中该行的值。
有人有任何想法吗?
谢谢!
答案 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')