Sql server 如何从另一列插入值,通过查询获取列名

Sql server 如何从另一列插入值,通过查询获取列名,sql-server,Sql Server,我想知道如何从具有动态名称的列中插入值。我得到的列名如下: select (select a.COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS a where a.COLUMN_NAME = 'COMMENTS') TEST from jan_dic d 我有一个master_表,其中一列的列名都是唯一的,另一列的第一列的列名都是经过批准的,如下所示 column1 | column2 ---------+-----

我想知道如何从具有动态名称的列中插入值。我得到的列名如下:

select  
    (select a.COLUMN_NAME 
     from INFORMATION_SCHEMA.COLUMNS a 
     where a.COLUMN_NAME = 'COMMENTS') TEST 
from jan_dic d
我有一个master_表,其中一列的列名都是唯一的,另一列的第一列的列名都是经过批准的,如下所示

column1  | column2
---------+------------
capital  | cap_amount
capital  | amount_cap
capital  | cap_amt   

我的问题是,如果列名获得批准,如何在其他表的列名为'capital'的另一个表中插入值。

您好,欢迎光临。我知道英语不是你的第一语言,但这没什么意义。批准列是什么意思?你到底想在这里做什么?您需要发布表定义、一些示例数据和所需的输出。这是一个很好的起点。寻找动态查询如果没有人能理解你,没有人能帮助你。
DECLARE @colname sysname = (
select  
    (select a.COLUMN_NAME 
     from INFORMATION_SCHEMA.COLUMNS a 
     where a.COLUMN_NAME = 'COMMENTS') TEST 
from jan_dic d
)

DECLARE @stmt NVARCHAR(MAX) = N'
   INSERT INTO othertable (' + @colname + N') VALUES ...
'

EXEC sp_executesql @stmt = @stmt