2016-06-24 31 views
0

我试图让下面的工作变量和名称:插入与可变

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

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

我把在@Variable列的名称,并希望投入EmptyTable:该ID,名称列中的值,该列中的值

最后一部分未与我尝试过的操作一样,我一直在获取列的名称而不是该列中的那个值。

任何人有任何想法?

谢谢!

+1

请指出您正在使用的确切DBMS(我怀疑它是SQL服务器),因为答案可能取决于它。 –

+0

确实SQL Server 2014的 –

回答

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 
+0

确实很有魅力!谢谢 –

1

这是很容易的,如果存储在变量列名得到列值。 我希望下面的代码对你有帮助。

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

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