如何复制/追加数据从一个表到另一个表与SQL Server相同的模式?
编辑:
假设有一个查询
select * into table1 from table2 where 1=1
它使用与table2中相同的模式和数据创建table1。
table2
table1
是否存在这样的短查询,只将整个数据复制到一个已经存在的表中?
试试这个:
INSERT INTO MyTable1 (Col1, Col2, Col4) SELECT Col1, Col2, Col3 FROM MyTable2
如果两个表确实是相同的模式:
INSERT INTO newTable SELECT * FROM oldTable
否则,你必须指定列名(如果你为所有列指定一个值,并以与newTable的模式相同的顺序选择列,newTable的列列表是可选的):
newTable
INSERT INTO newTable (col1, col2, col3) SELECT column1, column2, column3 FROM oldTable
下面是正确的做法:
INSERT INTO destinationTable SELECT * FROM sourceTable
Insert Into table2 Select * from table1
INSERT INTO table1 (col1, col2, col3) SELECT column1, column2, column3 FROM table2
INSERT INTO DestinationTable(SupplierName, Country) SELECT SupplierName, Country FROM SourceTable;
列名不一定相同。
简单的方法,如果新表不存在,你想做一个旧表的拷贝,然后在SQL Server工作。
SELECT * INTO NewTable FROM OldTable
带条件插入所选列
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';