SQL Server SELECT INTO17 Mar 2025 | 4 分钟阅读 本文将解释 SQL Server 中 SELECT INTO 语句的完整概述。 我们将使用此语句将数据添加到表中。 当我们使用此语句时,它将首先在默认文件组中创建一个新表,然后将 SELECT 语句选择的记录插入到该新表中。 需要注意的是,源表的约束不会复制到目标表。 语法以下是说明 SELECT INTO 语句的语法 参数下面给出了此语句的参数说明
SELECT INTO 示例让我们通过一些示例了解 SELECT INTO 语句在 SQL Server 中的工作方式。 假设我们有一个表 “employee”,其中包含以下数据 ![]() 1. 如果我们要将 employee 表的所有记录复制到 backup_employee 表中,我们需要使用 SELECT INTO 语句,如下所示 我们可以验证 employee 数据是否已成功插入到 backup_employee 表中,如下所示 这是输出 ![]() 2. 如果我们要将 employee 表的某些行复制到 backup_employee 表中,我们需要使用带有 WHERE 子句的 SELECT INTO 语句,如下所示 我们可以使用 SELECT 语句验证员工数据是否已成功插入到 backup_employee 表中。 这是输出 ![]() 3. 如果我们要将 employee 表的某些列复制到 backup_employee 表中,我们需要在 SELECT INTO 语句中指定所需的列名,如下所示 我们可以使用 SELECT 语句验证员工数据是否已成功插入到 backup_employee 表中。 这是输出 ![]() SELECT INTO 从多个表插入数据 SQL Server 允许我们将 JOIN 子句与 SELECT INTO 语句一起使用。 它有助于我们从多个表中检索记录,然后将它们插入到新表中。 在这里,我们使用 INNER JOIN 通过 id 列 连接两个表。 考虑以下名为 customer 和 orders 的表,其中包含以下数据 ![]() 假设我们要从 customer 和 orders 表 将 name、email、item、price 和 purchase date 等列复制到 customer_order 表中。 我们可以通过在 SELECT INTO 语句中指定带有 JOIN 子句的列名来做到这一点,如下所示 我们可以使用 SELECT 语句验证客户和订单表数据是否已成功插入到 customer_order 表中。 这是输出 ![]() SELECT INTO vs. INSERT INTO SELECT这两个语句都可以用于将数据从一个表移动到另一个表。 由于它们提供相似的功能,因此这两个语句有一些差异,这些差异可能会影响我们决定选择哪一个。 以下几点解释了它们之间的区别 1. 只有当目标表已存在于数据库中,才能使用 INSERT INTO select 语句,才能将数据从源表复制到目标表。 另一方面,在从源表复制数据之前,SELECT INTO 语句不需要目标表存在于我们的数据库中。 它在每次执行时都会自动创建一个目标表。 请看以下语句 此语句会引发错误,因为 tempTable 在数据库中不存在。 这是输出 ![]() 2. 区分它们的另一个区别与目标表的结构有关。 由于 SELECT INTO 语句自动创建表结构,因此它将与源表具有相同的结构。 这可能会导致插入数据时出现问题。 以下示例说明了这一点。 示例 上面创建的 customer_order 表包含一个长度为 8 的价格列。SELECT INTO 语句将生成具有与源表完全相同的列定义的目标表。 当我们尝试在 price 列中插入大于其大小的数据时,我们将收到一个错误,或者二进制数据将被截断。 下一个主题SQL Server 聚合函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。