如何在 SQL Server 中将数据从一个表复制/附加到另一个具有相同架构的表中?
编辑:
假设有一个查询
select *
into table1
from table2
where 1=1
它table1
使用与 中相同的模式和数据创建table2
。
是否有任何像这样的简短查询仅将整个数据复制到已经存在的表中?
如何在 SQL Server 中将数据从一个表复制/附加到另一个具有相同架构的表中?
编辑:
假设有一个查询
select *
into table1
from table2
where 1=1
它table1
使用与 中相同的模式和数据创建table2
。
是否有任何像这样的简短查询仅将整个数据复制到已经存在的表中?
如果两个表确实是相同的架构:
INSERT INTO newTable
SELECT * FROM oldTable
否则,您必须指定列名(newTable
如果要为所有列指定值并以与 的模式相同的顺序选择列,则列列表是可选newTable
的):
INSERT INTO newTable (col1, col2, col3)
SELECT column1, column2, column3
FROM oldTable
如果新表不存在并且您想使用所有内容制作旧表的副本,那么简单的方法可以在 SQL Server 中使用。
SELECT * INTO NewTable FROM OldTable
这是正确的方法:
INSERT INTO destinationTable
SELECT * FROM sourceTable
INSERT INTO table1 (col1, col2, col3)
SELECT column1, column2, column3
FROM table2
试试这个:
INSERT INTO MyTable1 (Col1, Col2, Col4)
SELECT Col1, Col2, Col3 FROM MyTable2
试试这个:
Insert Into table2
Select * from table1
INSERT INTO DestinationTable(SupplierName, Country)
SELECT SupplierName, Country FROM SourceTable;
列名相同不是强制性的。
插入带有条件的选定列
INSERT INTO where_to_insert (col_1,col_2) SELECT col1, col2 FROM from_table WHERE condition;
将所有数据从一个表复制到另一个具有相同列名的数据。
INSERT INTO where_to_insert
SELECT * FROM from_table WHERE condition;
CREATE TABLE `table2` LIKE `table1`;
INSERT INTO `table2` SELECT * FROM `table1`;
第一个查询将创建结构 from table1
to table2
,第二个查询将数据 from table1
totable2
将一个表的所有列复制到另一个表:
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
仅将一个表中的一些列复制到另一个表中:
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
您可以通过执行以下命令来复制或“克隆”表的内容:
CREATE TABLE new_table AS SELECT * FROM original_table;
-- 对于 Sql Server 用户。
如果您没有新表,那么您可以创建与旧表具有相同结构的新表,并将数据从旧表复制到新表。例如:
select * into new_table
from old_table;
您也可以复制列/表结构,以及一些数据。例如:
select * into new_table
from old_table
where country = 'DE';