首页 > 数据库 >SQL Server INSERT INTO SELECT语句

SQL Server INSERT INTO SELECT语句

时间:2023-03-09 16:11:39浏览次数:46  
标签:INSERT INTO SQL Server 插入 表中 SELECT

SQL Server INSERT INTO SELECT语句

以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!  

在本教程中,将学习如何使用SQL Server INSERT INTO SELECT语句将其他表中的数据插入到另一个指定表中。

INSERT INTO SELECT语句简介

要将其他表中的数据插入另一个表中,请使用以下SQL Server INSERT INTO SELECT语句:

INSERT  [ TOP ( expression ) [ PERCENT ] ] 
INTO target_table (column_list)
select_query
SQL

在此语法中,查询语句返回的行将插入target_table

该查询是从任何其他表中检索数据的有效SELECT语句。 它必须返回与column_list中指定的列对应的值。

TOP子句部分是可选的。 它用于指定要插入目标表(target_table)的查询返回的行数。 如果使用PERCENT选项,则语句将插入行的百分比。 请注意,最好始终将TOP子句与ORDER BY子句一起使用。

INSERT INTO SELECT示例

为了方便演示,下面创建一张addresses表:

CREATE TABLE sales.addresses (
    address_id INT IDENTITY PRIMARY KEY,
    street VARCHAR (255) NOT NULL,
    city VARCHAR (50),
    state VARCHAR (25),
    zip_code VARCHAR (5)
);
SQL

1. 将表的所有行插入另一张表示例

以下语句将customers表中的所有地址都插入到addresses表中:

INSERT INTO sales.addresses (street, city, state, zip_code) 
SELECT
    street,
    city,
    state,
    zip_code
FROM
    sales.customers
ORDER BY
    first_name,
    last_name;
SQL

要验证插入结果,请使用以下查询:

SELECT
    *
FROM
    sales.addresses;
SQL

执行上面查询语句,得到以下结果:

2. 插入一些行的示例

有时,只需要将一张表中的一些行插入到另一张表中。 在这种情况下,可以通过使用WHERE子句中的条件来限制从查询返回的行数。

以下语句将位于城市:Santa CruzBaldwin的商店的地址添加到address表中:

INSERT INTO sales.addresses (street, city, state, zip_code) 
SELECT
    street,
    city,
    state,
    zip_code
FROM
    sales.stores
WHERE
    city IN ('Santa Cruz', 'Baldwin')
SQL

SQL Server返回以下消息,指示已成功插入两行。

(2 rows affected)
Shell

3. 插入前N行记录

首先,使用以下语句删除addresses表中的所有行:

TRUNCATE TABLE sales.addresses;
SQL

其次,要插入按名字和姓氏排序的前10位客户,请使用INSERT TOP INTO SELECT语句,如下所示:

INSERT TOP (10) 
INTO sales.addresses (street, city, state, zip_code) 
SELECT
    street,
    city,
    state,
    zip_code
FROM
    sales.customers
ORDER BY
    first_name,
    last_name;
SQL

SQL Server返回以下消息,表明已成功插入十行。

(10 rows affected)
Shell

3. 插入行的百分比

可以在表中插入百分比的行,而不是使用绝对行数。

首先,删除addresses表中的所有行:

TRUNCATE TABLE sales.addresses;
SQL

其次,将customers表中前2%的行按名字和姓氏排序后插入到addresses表中:

INSERT TOP (10) PERCENT  
INTO sales.addresses (street, city, state, zip_code) 
SELECT
    street,
    city,
    state,
    zip_code
FROM
    sales.customers
ORDER BY
    first_name,
    last_name;
SQL

SQL Server发出以下消息,指示已成功插入145行。

(145 rows affected)
Shell

在本教程中,学习了如何使用SQL Server INSERT INTO SELECT语句将其他表中的行插入到指定表中。

//更多请阅读:https://www.yiibai.com/sqlserver/sql-server-insert-into-select.html

标签:INSERT,INTO,SQL,Server,插入,表中,SELECT
From: https://www.cnblogs.com/sexintercourse/p/17198851.html

相关文章

  • IdentityServer4:客户端模式
    IdentityServer4:客户端模式Api资源项目创建项目打开VS,创建一个“AspNetCoreWebApi”项目,名为:Dotnet.WebApi.Ids4.CustomerApi依赖包添加依赖包<PackageRe......
  • Windows server2012的DHCP ping通测试
    1.首先创建俩个windowsserver2012版本的虚拟机,进行基础配置时,保证每个虚拟机处在同一lan网段 1.进入虚拟机时关闭俩台设备的防火墙    2.右击右下角的网络图标......
  • IdentityServer4: 配置项持久化
    目录IdentityServer配置项持久化创建IdentityServer项目添加依赖包添加QuickstartUI数据库迁移ConfigurationDbContextPersistedGrantDbContext生成初始化数据严重BU......
  • IdentityServer4: 集成 AspNetCore Identity 框架
    IdentityServer4集成identity框架新增依赖包在IdentityServer4项目中新增集成AspNetCoreIdentity所需的依赖包:<PackageReferenceInclude="IdentityServer......
  • SQL SERVER 下载地址
    SQLServer2019Enterprise(x64)-DVD(Chinese-Simplified)企业版ed2k://|file|cn_sql_server_2019_enterprise_x64_dvd_2bfe815a.iso|1632086016|58C258FF0F1D006DD3......
  • percona-server-8.0.25-15源码编译安装
    ###############################     初始化:mysqld--initialize#mysqld--initialize--user=work--basedir=/home/work/mysql_3306--datadir=/home/wo......
  • 【Mybatis】【SQL执行过程】【四】Mybatis源码解析-Insert的执行过程
    1 前言上节带大家简单回顾了下SqlSession以及内部的执行器的创建,那么这节我们就开始看我们的语句都是如何执行的。调试代码://xml<insertid="insertOne"paramete......
  • SQL覆盖写入 INSERT ON CONFLICT
    SQL覆盖写入INSERTONCONFLICTONCONFLICTDOUPDATESETcolumn_name={expression|DEFAULT}ONCONFLICTDOUPDATENOTHING[WITH[RECURSIVE]with_query......
  • windows server 2012 dhcp配置
    1.环境地址池的范围:192.168.61.20-1002.配置虚拟机的IP  3.安装DHCP安装步骤参考DNS服务的安装4.DHCP的配置进入配置界面  新建作用域  点击「下一步」......
  • windows server 2012 DHCP下发IP地址
    在配置之前,将两台虚拟机的防火墙关闭,将属于服务端的IP地址手动配置首先保证两台虚拟机在同一lan区段点击添加角色与功能,选择DHCP服务器添加功能后,安装DHCP点击工......