将列从一个表复制到另一个表(数据库引擎)

适用于: SQL Server 2016 (13.x) 及更高版本Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW)

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中通过仅复制列定义或者复制定义和数据将列从一个表复制到另一个表。

本主题内容

开始之前

限制和局限

当将具有别名数据类型的列从一个数据库复制到另一个数据库时,别名数据类型在目标数据库中可能不可用。 在这种情况下,将为该列分配该数据库中可用的匹配度最高的基数据类型。

安全性

权限

需要对表的 ALTER 权限。

使用 SQL Server Management Studio

将列定义从一个表复制到另一个表

  1. 右键单击相应表,然后单击“设计”,打开要复制的列所在的表以及要复制到的表。

  2. 单击包含要复制的列的表的选项卡,然后选择这些列。

  3. “编辑” 菜单中,单击 “复制”

  4. 单击要将列复制到的表的选项卡。

  5. 选择要排在插入列之后的列,然后在 “编辑” 菜单中,单击 “粘贴”

将数据从一个表复制到另一个表

  1. 按照以上关于复制列定义的说明执行操作。

    注意

    在开始将数据从一个表复制到另一个表之前,请确保目标列中的数据类型与源列的数据类型相兼容。

  2. 打开一个新的查询编辑器窗口。

  3. 右键单击查询编辑器,然后单击“在编辑器中设计查询”

  4. 在“添加表”对话框中,选择源和目标表,单击“添加”,然后关闭“添加表”对话框。

  5. 右键单击查询编辑器的打开区域,指向“更改类型”,然后单击“插入结果”

  6. 在“选择插入结果的目标表”对话框中,选择目标表。

  7. 在查询设计器的上半部分,单击源表中的源列。

  8. 查询设计器现在已创建了 INSERT 查询。 单击“确定”以将该查询置于原始查询编辑器窗口中。

  9. 执行该查询以将数据从源表插入目标表。

“使用 Transact-SQL”

将列定义从一个表复制到另一个表

  1. 不能通过使用 Transact-SQL 语句将单独列从一个表复制到另一个现有表。 但是,您可以通过使用 SELECT INTO 在默认文件组中创建一个新表,并将来自查询的结果行插入该表中。 有关详细信息,请参阅 INTO 子句 (Transact-SQL)

将数据从一个表复制到另一个表

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准菜单栏上,单击 “新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE dbo.EmployeeSales  
    ( BusinessEntityID   varchar(11) NOT NULL,  
      SalesYTD money NOT NULL  
    );  
    GO  
    INSERT INTO dbo.EmployeeSales  
        SELECT BusinessEntityID, SalesYTD   
        FROM Sales.SalesPerson;  
    GO