SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

大家好,欢迎来到程序视点!我是你们的老朋友.小二!

核心观点

本文详细介绍了T-SQL中两种常用的表数据复制方法:INSERT INTO SELECT和SELECT INTO FROM,并对比了它们的适用场景和语法特点。

关键信息提炼

  1. INSERT INTO SELECT语句
    • 语法形式:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
    • 特点:
      • 要求目标表Table2必须已存在
      • 可以插入源表字段和常量值
      • 适合部分字段复制或向已有表追加数据

示例:

代码语言:javascript代码运行次数:0运行复制
 --1.创建测试表
    create TABLE Table1
    (
        a varchar(10),
        b varchar(10),
        c varchar(10),
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]

    create TABLE Table2
    (
        a varchar(10),
        c varchar(10),
        d int,
        CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]
    GO
    --2.创建测试数据
    Insert into Table1 values('赵','asds','90')
    Insert into Table1 values('钱','asds','100')
    Insert into Table1 values('孙','asds','80')
    Insert into Table1 values('李','asds',null)
    GO
    select * from Table2

    --3.INSERT INTO SELECT语句复制表数据
    Insert into Table2(a, c, d) select a,c,5 from Table1
    GO

    --4.显示更新后的结果
    select * from Table2
    GO
    --5.删除测试表
    drop TABLE Table1
    drop TABLE Table2
  1. SELECT INTO FROM语句
    • 语法形式:SELECT value1, value2 into Table2 from Table1
    • 特点:
      • 目标表Table2必须不存在,执行时会自动创建
      • 将指定字段数据复制到新表中
      • 适合快速创建表结构并复制数据

示例:

代码语言:javascript代码运行次数:0运行复制
--1.创建测试表
    create TABLE Table1
    (
        a varchar(10),
        b varchar(10),
        c varchar(10),
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]
    GO

    --2.创建测试数据
    Insert into Table1 values('赵','asds','90')
    Insert into Table1 values('钱','asds','100')
    Insert into Table1 values('孙','asds','80')
    Insert into Table1 values('李','asds',null)
    GO

    --3.SELECT INTO FROM语句创建表Table2并复制数据
    select a,c INTO Table2 from Table1
    GO

    --4.显示更新后的结果
    select * from Table2
    GO
    --5.删除测试表
    drop TABLE Table1
    drop TABLE Table2

应用场景对比

  • 需要向已有表追加数据 → 使用INSERT INTO SELECT
  • 需要创建新表并复制数据 → 使用SELECT INTO FROM

最后

【程序视点】助力打工人减负,从来不是说说而已!后续小二哥会继续详细分享更多实用的工具和功能。

如果这篇文章对你有帮助的话,别忘了【一键三连】支持下哦~