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

SQL Server中如何将UNION ALL结果存入新表或H1表?

解决UNION ALL结果存入表的语法错误问题

错误原因分析

  • 版本1错误:SQL Server要求FROM后的子查询必须指定别名,你的子查询未设置别名,触发语法报错。
  • 版本2错误:CREATE TABLE ... AS SELECT是MySQL、PostgreSQL等数据库的语法,SQL Server不支持该写法。

正确写法

写法1:修正SELECT INTO语句(自动创建表结构,推荐)

给子查询添加别名即可:

SELECT *
INTO [H1_2020_trips_cyclistic]
FROM
(
    SELECT * FROM [capstone].[dbo].[Divvy_Trips_2020_Q1$] AS Q1
    UNION ALL
    SELECT * FROM [capstone].[dbo].['202004-divvy-tripdata$'] AS April
    UNION ALL
    SELECT * FROM [capstone].[dbo].['202005-divvy-tripdata$'] AS May
    UNION ALL
    SELECT * FROM [capstone].[dbo].['202006-divvy-tripdata$'] AS June
) AS CombinedTrips -- 为子查询添加别名

写法2:先建表再插入数据(适合自定义表结构场景)

如果需要手动指定字段类型、约束等表结构,可先创建表再插入数据:

-- 先创建表(字段需与UNION ALL结果匹配)
CREATE TABLE [H1_2020_trips_cyclistic]
(
    -- 示例字段,需替换为实际源表字段
    ride_id VARCHAR(50),
    rideable_type VARCHAR(20),
    started_at DATETIME,
    ended_at DATETIME,
    -- 其他字段...
)

-- 插入UNION ALL结果
INSERT INTO [H1_2020_trips_cyclistic]
SELECT * FROM [capstone].[dbo].[Divvy_Trips_2020_Q1$]
UNION ALL 
SELECT * FROM [capstone].[dbo].['202004-divvy-tripdata$']
UNION ALL 
SELECT * FROM [capstone].[dbo].['202005-divvy-tripdata$']
UNION ALL 
SELECT * FROM [capstone].[dbo].['202006-divvy-tripdata$']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:56:15