You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询批量将源表列名复制到目标表

解决方法

首先明确你的需求场景,对应不同的实现方式:

场景1:将每个列名作为单独一行插入DestinationTable

你当前的SQL语句其实已经实现了一次性插入所有列名的效果——它会查询出SourceTable的所有列名,并批量插入到DestinationTable的ColumnName列中,每行对应一个列名,无需手动逐个操作。

如果执行后未达到预期,可能是未指定表架构导致查询到同名表,补充架构名可确保准确性:

INSERT INTO dbo.DestinationTable (ColumnName)
SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.Columns
WHERE TABLE_NAME = 'SourceTable'
AND TABLE_SCHEMA = 'dbo'; -- 指定表所属架构,避免同名表干扰

场景2:将所有列名合并为单个字符串(如逗号分隔)插入单行

如果需要把所有列名合并成一个字符串(例如col1, col2, col3)插入到DestinationTable的某一行,需使用对应数据库的字符串聚合函数:

适用于SQL Server:

INSERT INTO dbo.DestinationTable (ColumnName)
SELECT STRING_AGG(COLUMN_NAME, ', ') -- 用逗号分隔列名
FROM INFORMATION_SCHEMA.Columns
WHERE TABLE_NAME = 'SourceTable'
AND TABLE_SCHEMA = 'dbo';

适用于MySQL:

INSERT INTO DestinationTable (ColumnName)
SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ', ') -- 用逗号分隔列名
FROM INFORMATION_SCHEMA.Columns
WHERE TABLE_NAME = 'SourceTable'
AND TABLE_SCHEMA = 'your_database_name'; -- 替换为你的数据库名

内容的提问来源于stack exchange,提问作者iamstilllearning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:12:04