Sql 使用变量和变量名称插入到中

Sql 使用变量和变量名称插入到中,sql,sql-server,tsql,sql-server-2014,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,列的名称,该列中的值 最后一部分没有使用我尝试过的方法,我一直在获取列的名称,而不是该列中

我正在努力完成以下工作:

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

INSERT into EmptyTable (ID, Name, Number )
select ID, @Variable, ????
from FullTable
我把一个列的名称放在@Variable中,并想把它放在EmptyTable中:ID,列的名称,该列中的值

最后一部分没有使用我尝试过的方法,我一直在获取列的名称,而不是该列中该行的值

有人对此有什么想法吗


谢谢

您可以使用动态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

您可以使用动态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

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

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

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

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

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

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

请指定您正在使用的确切DBMS(我怀疑它是SQL server),因为答案可以依赖它。SQL server 2014 indeed请指定您正在使用的确切DBMS(我怀疑它是SQL server),因为答案可以依赖它。SQL server 2014