适用于:SQL Server 2016 (13.x) 及以后版本
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric 中的 SQL 数据库
本主题介绍如何在 SQL Server 中使用 SQL Server Management Studio 或 Transact-SQL 将列从一个表复制到另一个表中,既可以只复制列定义,也可以复制列定义和数据。
本主题内容
开始之前:
若要复制列,请使用:
开始之前
限制和局限
当将具有别名数据类型的列从一个数据库复制到另一个数据库时,别名数据类型在目标数据库中可能不可用。 在这种情况下,将为该列分配该数据库中可用的匹配度最高的基数据类型。
安全性
Permissions
需要对表的 ALTER 权限。
使用 SQL Server Management Studio
将列定义从一个表复制到另一个表
右键单击相应表,然后单击“设计”,打开要复制的列所在的表以及要复制到的表。
单击包含要复制的列的表的选项卡,然后选择这些列。
在 “编辑” 菜单中,单击 “复制”。
单击要将列复制到的表的选项卡。
选择要排在插入列之后的列,然后在 “编辑” 菜单中,单击 “粘贴”。
将数据从一个表复制到另一个表
按照以上关于复制列定义的说明执行操作。
Note
在开始将数据从一个表复制到另一个表之前,请确保目标列中的数据类型与源列的数据类型相兼容。
打开一个新的查询编辑器窗口。
右键单击查询编辑器,然后单击“在编辑器中设计查询”。
在“添加表”对话框中,选择源和目标表,单击“添加”,然后关闭“添加表”对话框。
右键单击查询编辑器的打开区域,指向“更改类型”,然后单击“插入结果”。
在“选择插入结果的目标表”对话框中,选择目标表。
在查询设计器的上半部分,单击源表中的源列。
查询设计器现已创建查询 INSERT 。 单击“确定”以将该查询置于原始查询编辑器窗口中。
执行该查询以将数据从源表插入目标表。
“使用 Transact-SQL”
将列定义从一个表复制到另一个表
- 不能通过使用 Transact-SQL 语句将单独列从一个表复制到另一个现有表。 但是,您可以通过使用 SELECT INTO 在默认文件组中创建一个新表,并将来自查询的结果行插入该表中。 有关详细信息,请参阅 INTO 子句 (Transact-SQL)。
将数据从一个表复制到另一个表
在 “对象资源管理器” 中,连接到数据库引擎实例。
在标准菜单栏上,单击 “新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。
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