如何复制/追加数据从一个表到另一个表与SQL Server相同的模式?
编辑:
假设有一个查询
select *
into table1
from table2
where 1=1
它使用与table2相同的模式和数据创建table1。
是否存在这样的短查询,只将整个数据复制到一个已经存在的表中?
如何复制/追加数据从一个表到另一个表与SQL Server相同的模式?
编辑:
假设有一个查询
select *
into table1
from table2
where 1=1
它使用与table2相同的模式和数据创建table1。
是否存在这样的短查询,只将整个数据复制到一个已经存在的表中?
试试这个:
INSERT INTO MyTable1 (Col1, Col2, Col4)
SELECT Col1, Col2, Col3 FROM MyTable2
如果两个表确实是相同的模式:
INSERT INTO newTable
SELECT * FROM oldTable
否则,你必须指定列名(newTable的列列表是可选的,如果你为所有列指定一个值,并以与newTable的模式相同的顺序选择列):
INSERT INTO newTable (col1, col2, col3)
SELECT column1, column2, column3
FROM oldTable
INSERT INTO table1 (col1, col2, col3)
SELECT column1, column2, column3
FROM table2
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`;
第一个查询将创建从table1到table2的结构,第二个查询将把数据从table1放到table2
将所有列从一个表复制到另一个表:
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';