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

如何在SQL查询中向两个临时表插入数据?

如何用单条SQL语句将相同数据插入两个临时表?

你尝试的SELECT * INTO #temp1, #temp2 FROM table语法在大多数SQL方言中都不支持,不过可以根据使用的数据库类型,用以下方式实现单条语句插入:

SQL Server 环境

可以借助OUTPUT子句实现单条语句将数据同时插入两个临时表,不过需要预先创建第二个临时表的结构:

-- 先创建匹配原表结构的两个临时表
SELECT TOP 0 * INTO #temp1 FROM table;
SELECT TOP 0 * INTO #temp2 FROM table;

-- 单条语句完成双表插入
INSERT INTO #temp1
OUTPUT inserted.* INTO #temp2
SELECT * FROM table;

如果不想提前创建表,也可以先通过SELECT INTO创建第一个临时表,再用一条INSERT语句复制数据到第二个表,虽为两条语句但可一次性执行:

SELECT * INTO #temp1 FROM table;
INSERT INTO #temp2 SELECT * FROM #temp1;

MySQL 环境

MySQL支持直接在INSERT语句中指定多个目标表,前提是预先创建好两个临时表的结构:

-- 创建和原表结构一致的临时表
CREATE TEMPORARY TABLE temp1 LIKE table;
CREATE TEMPORARY TABLE temp2 LIKE table;

-- 单条语句插入数据到两个表
INSERT INTO temp1, temp2
SELECT * FROM table;

注意:MySQL的临时表无需加#前缀,用CREATE TEMPORARY TABLE声明即可。

通用兼容方案

如果需要跨数据库兼容,最稳妥的方式是分两步操作,但可放在同一个执行批处理中,效果等同于单次执行:

-- 第一步:创建并填充第一个临时表
SELECT * INTO #temp1 FROM table;
-- 第二步:将第一个表的数据复制到第二个
INSERT INTO #temp2 SELECT * FROM #temp1;

内容的提问来源于stack exchange,提问作者Mehrshad. D

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:03:19